“Failed to fetch key” errors on nRF54L15 using Sidewalk Add-On v1.0.1

Hi team,

We are evaluating Amazon Sidewalk from Sidewalk SDK v1.0.1, the hello-sidewalk sample is ported onto our in-house prototype board (nRF54L15). We’ve:

  1. Provisioned using the certificate.json and Nordic instructions to generate a manufacturing HEX image.

  2. Flashed the image into the MFG storage partition of the internal flash.

  3. Confirmed provisioning is complete; device is currently unregistered (no gateway yet).

However, upon enabling debug logs ( CONFIG_SIDEWALK_LOG_LEVEL_DBG=y ), the app reports: Failed to fetch keys:


[01:00:34.184,415] <inf> APP_SIDEWALK: Sidewalk Version: v0103
[01:00:34.185,077] <dbg> sidewalk_app: sidewalk_event_send: sidewalk_event_send event = 0x2620d (sidewalk_event_platform_init), context )
[01:00:34.185,098] <dbg> sidewalk_app: sidewalk_event_send: sidewalk_event_send event = 0x26301 (sidewalk_event_autostart), context = (n)
[01:00:34.185,127] <dbg> sidewalk_app: sid_thread_entry: event received 0x2620d (sidewalk_event_platform_init) sidewalk workq usage (1/6)
[01:00:34.186,400] <dbg> sid_storage: sid_pal_storage_kv_init: Initialized KV storage
[01:00:34.186,491] <dbg> settings_utils: settings_utils_load_immediate_value: loaded sidewalk/storage/0000/001c key
[01:00:34.186,509] <dbg> settings_utils: settings_utils_load_immediate_value: Failed to fetch sidewalk/storage/0000/001c key
[01:00:34.186,516] <dbg> sid_storage: storage_key_save_secure: not found key 001c
[01:00:34.186,567] <dbg> settings_utils: settings_utils_load_immediate_value: loaded sidewalk/storage/0000/001e key
[01:00:34.186,584] <dbg> settings_utils: settings_utils_load_immediate_value: Failed to fetch sidewalk/storage/0000/001e key
[01:00:34.186,605] <dbg> sid_storage: storage_key_save_secure: not found key 001e
[01:00:34.186,662] <dbg> settings_utils: settings_utils_load_immediate_value: loaded sidewalk/storage/0000/0030 key
[01:00:34.186,679] <dbg> settings_utils: settings_utils_load_immediate_value: Failed to fetch sidewalk/storage/0000/0030 key
[01:00:34.186,685] <dbg> sid_storage: storage_key_save_secure: not found key 0030
[01:00:34.186,744] <dbg> sidewalk_app: sid_thread_entry: event received 0x26301 (sidewalk_event_autostart) sidewalk workq usage (0/64) ()
[01:00:34.186,759] <inf> sidewalk_events: Sidewalk link switch to BLE
[01:00:34.186,820] <dbg> settings_utils: settings_utils_load_immediate_value: loaded sidewalk/storage/0000/0027 key
[01:00:34.186,837] <dbg> settings_utils: settings_utils_load_immediate_value: Failed to fetch sidewalk/storage/0000/0027 key
[01:00:34.188,870] <dbg> settings_utils: settings_utils_load_immediate_value: loaded sidewalk/storage/0000/0027 key
[01:00:34.188,981] <dbg> settings_utils: settings_utils_load_immediate_value: loaded sidewalk/storage/0000/0027 key
[01:00:34.189,568] <dbg> settings_utils: settings_utils_load_immediate_value: loaded sidewalk/storage/0000/0027 key
[01:00:34.189,705] <dbg> sid_mfg: sid_pal_mfg_store_read: secure read tag 6 status -13
[01:00:34.189,816] <dbg> sid_mfg: sid_pal_mfg_store_read: secure read tag 9 status -13
[01:00:34.189,959] <inf> sid_ble: Enable BT
[01:00:34.190,208] <inf> bt_sdc_hci_driver: SoftDevice Controller build revision:
c7 53 7d bc 06 12 f7 c0 b3 3a 3e 28 8e 56 1e d7 |.S}..... .:>(.V..
a0 be 95 b0 |....
[01:00:34.191,928] <inf> bt_hci_core: HW Platform: Nordic Semiconductor (0x0002)
[01:00:34.191,942] <inf> bt_hci_core: HW Variant: nRF54Lx (0x0005)
[01:00:34.191,956] <inf> bt_hci_core: Firmware: Standard Bluetooth controller (0x00) Version 199.32083 Build 4145153724
[01:00:34.192,699] <inf> bt_hci_core: Identity: CE:17:1B:E0:BB:0F (random)
[01:00:34.192,715] <inf> bt_hci_core: HCI: version 6.0 (0x0e) revision 0x30e8, manufacturer 0x0059
[01:00:34.192,729] <inf> bt_hci_core: LMP: version 6.0 (0x0e) subver 0x30e8
[01:00:34.192,735] <inf> sid_ble: BT initialized
[01:00:34.193,629] <dbg> settings_utils: settings_utils_load_immediate_value: loaded sidewalk/storage/0000/0027 key
[01:00:34.193,747] <dbg> settings_utils: settings_utils_load_immediate_value: loaded sidewalk/storage/0000/0027 key
[01:00:34.193,885] <dbg> settings_utils: settings_utils_load_immediate_value: loaded sidewalk/storage/0000/0027 key
[01:00:34.193,989] <dbg> settings_utils: settings_utils_load_immediate_value: loaded sidewalk/storage/0000/0027 key
[01:00:34.195,193] <dbg> settings_utils: settings_utils_load_immediate_value: loaded sidewalk/storage/0000/0027 key
[01:00:34.195,208] <dbg> hal_memory: heap_alloc_stats: New max heap usage 24 / 6144
[01:00:34.195,244] <dbg> sidewalk_app: sidewalk_event_send: sidewalk_event_send event = 0x2654d (sidewalk_event_new_status), context = 0)
[01:00:34.195,252] <inf> APP_SID_HELLO: Status changed: not ready
[01:00:34.195,312] <inf> APP_SID_HELLO: Device Unregistered, Time Sync Fail, Link status: {BLE: Down, FSK: Down, LoRa: Down}
[01:00:34.195,358] <dbg> sidewalk_app: sid_thread_entry: event received 0x2654d (sidewalk_event_new_status) sidewalk workq usage (0/64) )
[01:00:34.295,389] <dbg> sidewalk_app: sidewalk_event_send: sidewalk_event_send event = 0x26171 (sidewalk_event_process), context = (nil)
[01:00:34.295,432] <dbg> sidewalk_app: sid_thread_entry: event received 0x26171 (sidewalk_event_process) sidewalk workq usage (0/64) ( a)
[01:00:34.395,678] <dbg> sidewalk_app: sidewalk_event_send: sidewalk_event_send event = 0x26171 (sidewalk_event_process), context = (nil)
[01:00:34.395,721] <dbg> sidewalk_app: sid_thread_entry: event received 0x26171 (sidewalk_event_process) sidewalk workq usage (0/64) ( a)

[00:02:09.298,093] <inf> sid_ble_advert: Change advertisement interval
[00:16:39.297,086] <dbg> sidewalk_app: sidewalk_event_send: sidewalk_event_send event = 0x26171 (sidewalk_event_process), context = (nil)
[00:16:39.297,130] <dbg> sidewalk_app: sid_thread_entry: event received 0x26171 (sidewalk_event_process) sidewalk workq usage (0/64) ( a)
[00:16:39.297,432] <dbg> settings_utils: settings_utils_load_immediate_value: loaded sidewalk/storage/0000/0027 key
[00:16:39.297,571] <dbg> settings_utils: settings_utils_load_immediate_value: loaded sidewalk/storage/0000/0027 key
[00:16:39.297,675] <dbg> settings_utils: settings_utils_load_immediate_value: loaded sidewalk/storage/0000/0027 key
[00:17:09.298,669] <inf> sid_ble_advert: Change advertisement interval
[00:31:39.297,726] <dbg> sidewalk_app: sidewalk_event_send: sidewalk_event_send event = 0x26171 (sidewalk_event_process), context = (nil)
[00:31:39.297,770] <dbg> sidewalk_app: sid_thread_entry: event received 0x26171 (sidewalk_event_process) sidewalk workq usage (0/64) ( a)
[00:31:39.298,072] <dbg> settings_utils: settings_utils_load_immediate_value: loaded sidewalk/storage/0000/0027 key
[00:31:39.298,211] <dbg> settings_utils: settings_utils_load_immediate_value: loaded sidewalk/storage/0000/0027 key
[00:31:39.298,315] <dbg> settings_utils: settings_utils_load_immediate_value: loaded sidewalk/storage/0000/0027 key
[00:32:09.299,309] <inf> sid_ble_advert: Change advertisement interval
[00:46:39.298,366] <dbg> sidewalk_app: sidewalk_event_send: sidewalk_event_send event = 0x26171 (sidewalk_event_process), context = (nil)
[00:46:39.298,410] <dbg> sidewalk_app: sid_thread_entry: event received 0x26171 (sidewalk_event_process) sidewalk workq usage (0/64) ( a)
[00:46:39.298,712] <dbg> settings_utils: settings_utils_load_immediate_value: loaded sidewalk/storage/0000/0027 key
[00:46:39.298,851] <dbg> settings_utils: settings_utils_load_immediate_value: loaded sidewalk/storage/0000/0027 key
[00:46:39.298,955] <dbg> settings_utils: settings_utils_load_immediate_value: loaded sidewalk/storage/0000/0027 key
[00:47:09.299,949] <inf> sid_ble_advert: Change advertisement interval


We’ve completed onboarding and provisioning the Sidewalk devices.

Now, we need to ensure the firmware porting is correct before obtaining a gateway for testing.

  • Provisioning Data Issues:

    • Observation: We encountered the following error messages: Failed message:
      • settings_utils: settings_utils_load_immediate_value: Failed to fetch sidewalk/storage/0000/001c key
      • settings_utils: settings_utils_load_immediate_value: Failed to fetch sidewalk/storage/0000/001e key
      • settings_utils: settings_utils_load_immediate_value: Failed to fetch sidewalk/storage/0000/0030 key
    • Question:
      • Could these errors indicate missing provisioning data (e.g., device keys or certificates)?
      • After enabling Bluetooth (sid_ble: Enable BT), these errors no longer appear.
        Could you clarify the purpose of these keys and recommend steps to resolve this issue?

  • Firmware Porting Verification:
    • Statement: We aim to ensure the firmware porting is correct before obtaining a gateway for testing.
    • Observation: the log entry <inf> sid_ble_advert: Change advertisement interval
    • Question:
      • Despite this, and due to the absence of any error messages,
        our nRF52840 Bluetooth sniffer did not capture any Sidewalk advertisement packets.
        Could you provide suggestions to ensure these packets are transmitted and detected correctly?

  • PM configuration:
    • Observation:  the pm_static_nrf54l15dk_nrf54l15_cpuapp.yml file, it specifies the following partition sizes:
      • mfg_storage size: 0x1000
      • settings_storage size: 0x2000
    • Question:
      • Is it necessary to include settings_storage in our project? What is its purpose?

Sincerely

Parents
  • Please ignore below question, We are able to observe the advertisement packet by nRF Connect APP running on phone.

    • Firmware Porting Verification:
      • Statement: We aim to ensure the firmware porting is correct before obtaining a gateway for testing.
      • Observation: the log entry <inf> sid_ble_advert: Change advertisement interval
      • Question:
        • Despite this, and due to the absence of any error messages,
          our nRF52840 Bluetooth sniffer did not capture any Sidewalk advertisement packets.
          Could you provide suggestions to ensure these packets are transmitted and detected correctly?

    I would appreciate your assistance in resolving the Provisioning Data issues and the PM configuration

  • Hi

    I will be looking into your case. Due to summer vacation we have less staff than usual so it might take longer to get a hold for the correct resources. 

    Which version of NCS are you using(In case I need to try to replicate your setup)? 

    Did you remember to use the 54 series part when you created the hex? As it would write the data to a different address as mentioned here

        • Is it necessary to include settings_storage in our project? What is its purpose?

    The setting storage partition is used to store configuration from subsystems that use the settings API like for example BLE or other systems that need to store data and retrieve them after a reboot. I would not drop this partition.  

    Regards

    Runar

  • Hi Runar,

    Thanks for the update — sounds good. I appreciate you double-checking with the Sidewalk team.
    Looking forward to your update once you hear back from them.

    Sincerely
    Angus

  • I just heard back from person who wrote the persistent storage

    if the application successfully connects to gateway and is able to send/receive messages, than this is not relevant. He recall the sidewalk stack did try to fetch some keys that was not available just to check if it was present. Normally this goes away when connected to a gateway but if it does not we can look more into it. He recommended observation of the issue, check if the same behavior is on the device that is already registered, and if it repeats once you connect and send/receive messages.

    Regards

    Runar

  • Thanks Runar.


    I see. I should be receiving my gateway in a week or two.
    Once I have it and complete the testing, I’ll get back to you to confirm.

    BR.

    Angus

  • Sounds good to me

    Have a nice time until then

    Regards

    RUnar

  • Hi Runar,

    Communication with the Gateway works normally after I complete the VPN setup outside the USA.
    Thanks for your previous help in clarifying these issues.

    BR,
    Angus

Reply Children
No Data
Related