Help with LTE connection after loss of connection

We have noticed that several of our nRF9160 in production have problem with reconnecting to the LTE-M network after temporarily losing connection. We have tried reproducing this issue by deactivating the sim for about 10 seconds and then activating it again. After the default six retries it gives up and stop trying to reconnect to the network. the only way we can achieve a connection is if we do a sys_reboot() or a hard reboot with watchdog. Why is the reconnect attempts not enough? Why do we have to force a reboot? Attached are relevant logs.

  • Hello  ,

    We have not used v2.5.0, only 2.3.0 and now 2.6.0. Thank you for sharing your findings on v2.5.0. My guess is that there might have been new config values that have been added to 2.6.0 that are discarded by 2.5.0 (that is, if you prj.conf looks the same).

  • Thank you @seppo . Here are some more interesing logs:

    uart:~$ [00:49:29.217,254] <dbg> app_lwm2m_client: rd_client_event: Registration update complete
    uart:~$ [00:49:29.217,285] <dbg> app_lwm2m_client: watchdog_Kick: Watchdog feed ok!
    uart:~$ [00:49:29.217,376] <inf> net_lwm2m_rd_client: Update Done
    uart:~$ [00:49:29.217,559] <dbg> net_lwm2m_message_handling: lwm2m_udp_receive: reply 0x2000d7c0 handled and removed
    uart:~$ [00:49:29.217,620] <dbg> net_lwm2m_rd_client: lwm2m_rd_client_service: State: 9
    uart:~$ [00:49:29.252,838] <dbg> at_monitor: at_monitor_task: AT notif: %CESQ: 39,1,17,2
    uart:~$ [00:49:29.252,899] <dbg> at_monitor: at_monitor_task: Dispatching to 0x3bef9
    uart:~$ uart:~$ [00:49:34.666,595] <dbg> at_monitor: at_monitor_task: AT notif: +CSCON: 0
    uart:~$ [00:49:34.666,625] <dbg> at_monitor: at_monitor_task: Dispatching to 0x39a7d
    uart:~$ [00:49:34.666,656] <dbg> lte_lc: at_handler_cscon: +CSCON notification
    uart:~$ [00:49:34.666,809] <dbg> lte_lc: event_handler_list_dispatch: Dispatching event: type=3
    uart:~$ [00:49:34.666,839] <dbg> lte_lc: event_handler_list_dispatch:  - handler=0x0003C989
    uart:~$ [00:49:34.666,839] <dbg> lte_lc: event_handler_list_dispatch:  - handler=0x00040D25
    uart:~$ [00:49:34.666,870] <dbg> lte_lc: event_handler_list_dispatch:  - handler=0x0001A8A5
    uart:~$ [00:49:34.666,900] <dbg> lte_lc: event_handler_list_dispatch: Done
    uart:~$ [00:49:34.766,723] <dbg> at_monitor: at_monitor_task: AT notif: %XT3412: 3239999
    uart:~$ [00:49:34.766,754] <dbg> at_monitor: at_monitor_task: Dispatching to 0x3992d
    uart:~$ [00:49:34.766,815] <dbg> lte_lc: at_handler_xt3412: %XT3412 notification
    uart:~$ uart:~$ [00:49:35.249,389] <dbg> at_monitor: at_monitor_task: AT notif: %CESQ: 37,1,12,1
    uart:~$ [00:49:35.249,450] <dbg> at_monitor: at_monitor_task: Dispatching to 0x3bef9
    uart:~$ uart:~$ *** Booting nRF Connect SDK v3.5.99-ncs1 ***
    I: Starting bootloader
    I: Primary image: magic=good, swap_type=0x2, copy_done=0x1, image_ok=0x1
    I: Secondary image: magic=unset, swap_type=0x1, copy_done=0x3, image_ok=0x3
    I: Boot source: none
    I: Image index: 0, Swap type: none
    I: Bootloader chainload address offset: 0x10000
    I: Jumping to the first image slot
    �
    
    uart:~$ [00:00:00.252,258] <dbg> clock_control: clkstarted_handle: lfclk: Clock started
    uart:~$ *** Booting nRF Connect SDK v3.5.99-ncs1 ***
    uart:~$ [00:00:00.253,814] <dbg> net_lwm2m_obj_qlocx_manage: management_create: Create IPSO Management instance: 0
    uart:~$ [00:00:00.253,845] <dbg> net_lwm2m_obj_qlocx_barcode: barcode_create: Create IPSO Barcode instance: 0
    uart:~$ [00:00:00.254,577] <dbg> net_lwm2m_engine: lwm2m_engine_init: LWM2M engine socket receive thread started
    uart:~$ [00:00:00.254,699] <dbg> net_lwm2m_obj_security: security_create: Create LWM2M security instance: 0
    uart:~$ [00:00:00.254,821] <dbg> net_lwm2m_obj_device: device_create: Create LWM2M device instance: 0
    uart:~$ [00:00:00.255,187] <dbg> net_lwm2m_obj_conn_mon: connmon_create: Create LWM2M connectivity monitoring instance: 0
    uart:~$ [00:00:00.255,249] <dbg> net_lwm2m_obj_firmware: firmware_create: Create LWM2M firmware instance: 0
    uart:~$ [00:00:00.255,798] <inf> app_lwm2m_client: Run LWM2M client
    uart:~$ [00:00:00.255,828] <dbg> app_lwm2m_client: watchdog_Init: Watchdog started: 0
    uart:~$ uart:~$ [00:00:00.487,518] <dbg> nrf_modem: nrf_modem_lib_init: Modem init callback: 0x3bdf9
    uart:~$ [00:00:00.495,758] <dbg> lte_lc: lte_lc_system_mode_set: System mode set to 1, preference 0
    uart:~$ [00:00:00.495,819] <dbg> lte_lc: lte_lc_psm_param_set: RPTAU set to 00000110
    uart:~$ [00:00:00.495,849] <dbg> lte_lc: lte_lc_psm_param_set: RAT set to 00001111
    uart:~$ [00:00:00.495,910] <dbg> lte_lc: on_modem_init: PSM configs set from string: tau=00000110, rat=00001111
    uart:~$ [00:00:00.495,971] <dbg> lte_lc: lte_lc_psm_req: enable=0, tau=00000110, rat=00001111
    uart:~$ [00:00:00.503,906] <inf> app_lwm2m_client: Clearing PSK
    uart:~$ [00:00:00.533,843] <dbg> app_lwm2m_client: watchdog_Kick: Watchdog feed ok!
    uart:~$ [00:00:00.533,905] <dbg> app_lwm2m_client: watchdog_Kick: Watchdog feed ok!
    uart:~$ [00:00:00.534,606] <inf> app_lwm2m_client: endpoint: <MY_ENDPOINT>
    uart:~$ [00:00:00.534,637] <dbg> app_lwm2m_client: watchdog_Kick: Watchdog feed ok!

    We have noticed that the device keeps restarting every 49.5 minutes... Is there any value in prj.conf that might be causing this?

    Another point:

    It seems like disabling PSM mode prevents the device from disconnecting:

    uart:~$ [00:25:43.377,349] <dbg> net_lwm2m_message_handling: lwm2m_parse_peerinfo: Parse url: coaps://<MY_URL>:5684
    uart:~$ uart:~$ uart:~$ [00:25:47.265,747] <dbg> at_monitor: at_monitor_task: AT notif: +CSCON: 0
    uart:~$ [00:25:47.265,808] <dbg> at_monitor: at_monitor_task: Dispatching to 0x39a7d
    uart:~$ [00:25:47.265,808] <dbg> lte_lc: at_handler_cscon: +CSCON notification
    uart:~$ [00:25:47.265,960] <dbg> lte_lc: event_handler_list_dispatch: Dispatching event: type=3
    uart:~$ [00:25:47.265,991] <dbg> lte_lc: event_handler_list_dispatch:  - handler=0x0003C989
    uart:~$ [00:25:47.266,021] <dbg> lte_lc: event_handler_list_dispatch:  - handler=0x00040D25
    uart:~$ [00:25:47.266,021] <dbg> lte_lc: event_handler_list_dispatch:  - handler=0x0001A8A5
    uart:~$ [00:25:47.266,052] <dbg> lte_lc: event_handler_list_dispatch: Done
    uart:~$ [00:25:47.365,875] <dbg> at_monitor: at_monitor_task: AT notif: %XT3412: 3239999
    uart:~$ [00:25:47.365,905] <dbg> at_monitor: at_monitor_task: Dispatching to 0x3992d
    uart:~$ [00:25:47.365,966] <dbg> lte_lc: at_handler_xt3412: %XT3412 notification
    uart:~$ uart:~$ [00:25:47.465,972] <dbg> at_monitor: at_monitor_task: AT notif: %XT3412: 0
    uart:~$ [00:25:47.466,003] <dbg> at_monitor: at_monitor_task: Dispatching to 0x3992d
    uart:~$ [00:25:47.466,033] <dbg> lte_lc: at_handler_xt3412: %XT3412 notification
    uart:~$ [00:25:47.475,524] <dbg> net_lwm2m_registry: lwm2m_engine_get: path:0/1/2/0, level 3, buf:0x20031fc3, buflen:1
    uart:~$ [00:25:47.485,900] <dbg> at_monitor: at_monitor_task: AT notif: +CSCON: 1
    uart:~$ [00:25:47.485,931] <dbg> at_monitor: at_monitor_task: Dispatching to 0x39a7d
    uart:~$ [00:25:47.485,961] <dbg> lte_lc: at_handler_cscon: +CSCON notification
    uart:~$ [00:25:47.486,083] <dbg> lte_lc: event_handler_list_dispatch: Dispatching event: type=3
    uart:~$ [00:25:47.486,114] <dbg> lte_lc: event_handler_list_dispatch:  - handler=0x0003C989
    uart:~$ [00:25:47.486,145] <dbg> lte_lc: event_handler_list_dispatch:  - handler=0x00040D25
    uart:~$ [00:25:47.486,175] <dbg> lte_lc: event_handler_list_dispatch:  - handler=0x0001A8A5
    uart:~$ [00:25:47.486,206] <dbg> lte_lc: event_handler_list_dispatch: Done
    uart:~$ uart:~$ [00:25:47.667,907] <dbg> net_lwm2m_registry: lwm2m_engine_get: path:0/1/2/0, level 3, buf:0x20031f8b, buflen:1
    uart:~$ [00:25:47.667,999] <dbg> lwm2m_security: load_credentials_to_modem: Existing credentials found on modem
    uart:~$ [00:25:47.668,548] <dbg> net_lwm2m_registry: lwm2m_engine_get: path:0/1/2/0, level 3, buf:0x20031fcb, buflen:1
    uart:~$ [00:25:47.840,270] <inf> net_lwm2m_engine: Connected, sock id 2
    uart:~$ [00:25:47.841,003] <dbg> net_lwm2m_registry: lwm2m_engine_get: path:1/0/1/0, level 3, buf:0x20031ff0, buflen:4
    uart:~$ [00:25:47.842,407] <dbg> net_lwm2m_rd_client: sm_send_registration: registration sent [<MY_IP>]
    uart:~$ [00:25:47.843,383] <dbg> app_lwm2m_client: rd_client_event: Disconnected
    uart:~$ [00:25:47.843,505] <inf> net_lwm2m_rd_client: Stop LWM2M Client: <MY_ENDPOINT>
    uart:~$ [00:25:47.845,031] <dbg> net_lwm2m_rd_client: lwm2m_rd_client_service: State: 17
    uart:~$ [00:25:47.846,618] <dbg> net_lwm2m_rd_client: lwm2m_rd_client_service: State: 0
    uart:~$ uart:~$ [00:25:47.929,077] <inf> app_lwm2m_client: Client connect to server
    uart:~$ [00:25:47.929,168] <inf> net_lwm2m_rd_client: Start LWM2M Client: <MY_ENDPOINT>
    uart:~$ [00:25:47.929,443] <dbg> net_lwm2m_rd_client: lwm2m_rd_client_service: State: 1
    uart:~$ [00:25:47.929,779] <dbg> net_lwm2m_rd_client: lwm2m_rd_client_service: State: 6
    uart:~$ [00:25:47.929,809] <dbg> net_lwm2m_registry: lwm2m_engine_get: path:1/0/1/0, level 3, buf:0x20032020, buflen:4
    uart:~$ [00:25:47.929,840] <dbg> net_lwm2m_registry: lwm2m_engine_get: path:1/0/0/0, level 3, buf:0x20032040, buflen:2
    uart:~$ [00:25:47.929,931] <inf> net_lwm2m_rd_client: RD Client started with endpoint '<MY_ENDPOINT>' with client lifetime 86400 using server object 0
    uart:~$ [00:25:47.929,992] <dbg> net_lwm2m_message_handling: lwm2m_parse_peerinfo: Parse url: coaps://<MY_URL>:5684
    uart:~$ [00:25:47.930,633] <dbg> net_lwm2m_registry: lwm2m_engine_get: path:0/1/2/0, level 3, buf:0x20031fc3, buflen:1
    uart:~$ [00:25:48.056,610] <inf> app_lwm2m_client: LwM2M is connecting to server
    uart:~$ uart:~$ [00:25:48.096,557] <dbg> net_lwm2m_registry: lwm2m_engine_get: path:0/1/2/0, level 3, buf:0x20031f8b, buflen:1
    uart:~$ [00:25:48.096,649] <dbg> lwm2m_security: load_credentials_to_modem: Existing credentials found on modem
    uart:~$ [00:25:48.097,198] <dbg> net_lwm2m_registry: lwm2m_engine_get: path:0/1/2/0, level 3, buf:0x20031fcb, buflen:1
    uart:~$ [00:25:48.258,239] <inf> net_lwm2m_engine: Connected, sock id 2
    uart:~$ [00:25:48.258,819] <dbg> net_lwm2m_registry: lwm2m_engine_get: path:1/0/1/0, level 3, buf:0x20031ff0, buflen:4
    uart:~$ [00:25:48.260,192] <dbg> net_lwm2m_rd_client: sm_send_registration: registration sent [<MY_IP>]
    uart:~$ [00:25:48.262,390] <dbg> net_lwm2m_rd_client: lwm2m_rd_client_service: State: 8
    uart:~$ [00:25:48.393,890] <dbg> net_lwm2m_rd_client: do_registration_reply_cb: Registration callback (code:2.1)
    uart:~$ [00:25:48.394,592] <dbg> lte_lc: parse_psm: TAU: 3240 sec, active time: -1 sec
    uart:~$ [00:25:48.394,622] <dbg> lte_lc: lte_lc_psm_get: TAU: 3240 sec, active time: -1 sec
    uart:~$ [00:25:48.394,653] <dbg> lwm2m_sec_con_man: lwm2m_utils_update_rptau: PSM deactivated
    uart:~$ [00:25:48.394,683] <dbg> app_lwm2m_client: rd_client_event: Registration complete
    uart:~$ [00:25:48.394,805] <inf> net_lwm2m_rd_client: Registration Done (EP='XXXXXXX')
    uart:~$ [00:25:48.394,989] <dbg> net_lwm2m_message_handling: lwm2m_udp_receive: reply 0x2000d7c0 handled and removed
    uart:~$ [00:25:48.395,050] <dbg> net_lwm2m_rd_client: lwm2m_rd_client_service: State: 9
    uart:~$ uart:~$ uart:~$ [00:25:48.477,661] <inf> app_lwm2m_client: LwM2M is connected to server
    uart:~$ [00:25:48.477,722] <dbg> date_time: date_time_update_thread: Updating date time UTC...
    uart:~$ [00:25:48.477,752] <dbg> date_time: date_time_update_thread: Using previously obtained time
    uart:~$ [00:25:48.477,783] <inf> app_lwm2m_client: Obtained date-time from modem
    uart:~$ [00:25:48.477,813] <dbg> net_lwm2m_registry: lwm2m_engine_set: path:3/0/13, buf:0x2003275c, len:4
    uart:~$ uart:~$ [00:25:52.857,696] <dbg> at_monitor: at_monitor_task: AT notif: +CSCON: 0
    uart:~$ [00:25:52.857,727] <dbg> at_monitor: at_monitor_task: Dispatching to 0x39a7d
    uart:~$ [00:25:52.857,757] <dbg> lte_lc: at_handler_cscon: +CSCON notification
    uart:~$ [00:25:52.857,910] <dbg> lte_lc: event_handler_list_dispatch: Dispatching event: type=3
    uart:~$ [00:25:52.857,910] <dbg> lte_lc: event_handler_list_dispatch:  - handler=0x0003C989
    uart:~$ [00:25:52.857,940] <dbg> lte_lc: event_handler_list_dispatch:  - handler=0x00040D25
    uart:~$ [00:25:52.857,971] <dbg> lte_lc: event_handler_list_dispatch:  - handler=0x0001A8A5
    uart:~$ [00:25:52.857,971] <dbg> lte_lc: event_handler_list_dispatch: Done
    uart:~$ [00:25:52.957,794] <dbg> at_monitor: at_monitor_task: AT notif: %XT3412: 3239999
    uart:~$ [00:25:52.957,855] <dbg> at_monitor: at_monitor_task: Dispatching to 0x3992d
    uart:~$ [00:25:52.957,885] <dbg> lte_lc: at_handler_xt3412: %XT3412 notification
    uart:~$ uart:~$ [00:25:53.120,452] <dbg> at_monitor: at_monitor_task: AT notif: %CESQ: 34,1,17,2
    uart:~$ [00:25:53.120,513] <dbg> at_monitor: at_monitor_task: Dispatching to 0x3bef9
    uart:~$ [00:25:53.120,727] <dbg> net_lwm2m_registry: lwm2m_engine_set: path:4/0/2, buf:0x2003989e, len:2
    uart:~$ uart:~$ [00:26:02.080,841] <dbg> at_monitor: at_monitor_task: AT notif: %CESQ: 33,1,12,1
    uart:~$ [00:26:02.080,902] <dbg> at_monitor: at_monitor_task: Dispatching to 0x3bef9
    uart:~$ uart:~$ [00:26:07.393,768] <dbg> net_lwm2m_rd_client: lwm2m_rd_client_service: State: 9
    uart:~$ [00:26:07.393,829] <dbg> app_lwm2m_client: rd_client_event: Registration update started
    uart:~$ [00:26:07.493,347] <dbg> net_lwm2m_rd_client: lwm2m_rd_client_service: State: 11
    uart:~$ [00:26:07.493,865] <dbg> net_lwm2m_registry: lwm2m_engine_get: path:1/0/1/0, level 3, buf:0x20031ff8, buflen:4
    uart:~$ [00:26:07.494,018] <dbg> net_lwm2m_rd_client: sm_send_registration: registration sent [<MY_IP>]
    uart:~$ [00:26:07.501,403] <dbg> net_lwm2m_rd_client: lwm2m_rd_client_service: State: 12
    uart:~$ [00:26:07.604,492] <dbg> at_monitor: at_monitor_task: AT notif: %XT3412: 0
    uart:~$ [00:26:07.604,522] <dbg> at_monitor: at_monitor_task: Dispatching to 0x3992d
    uart:~$ [00:26:07.604,553] <dbg> lte_lc: at_handler_xt3412: %XT3412 notification
    uart:~$ [00:26:07.704,925] <dbg> at_monitor: at_monitor_task: AT notif: +CSCON: 1
    uart:~$ [00:26:07.704,986] <dbg> at_monitor: at_monitor_task: Dispatching to 0x39a7d
    uart:~$ [00:26:07.705,017] <dbg> lte_lc: at_handler_cscon: +CSCON notification
    uart:~$ [00:26:07.705,169] <dbg> lte_lc: event_handler_list_dispatch: Dispatching event: type=3
    uart:~$ [00:26:07.705,200] <dbg> lte_lc: event_handler_list_dispatch:  - handler=0x0003C989
    uart:~$ [00:26:07.705,200] <dbg> lte_lc: event_handler_list_dispatch:  - handler=0x00040D25
    uart:~$ [00:26:07.705,230] <dbg> lte_lc: event_handler_list_dispatch:  - handler=0x0001A8A5
    uart:~$ [00:26:07.705,230] <dbg> lte_lc: event_handler_list_dispatch: Done
    uart:~$ uart:~$ uart:~$ [00:26:08.495,117] <dbg> net_lwm2m_rd_client: lwm2m_rd_client_service: State: 12
    uart:~$ [00:26:08.495,147] <dbg> net_lwm2m_rd_client: lwm2m_rd_client_service: State machine have timed out
    uart:~$ [00:26:08.495,239] <dbg> app_lwm2m_client: rd_client_event: Registration update failure!
    uart:~$ [00:26:08.495,300] <dbg> net_lwm2m_rd_client: lwm2m_rd_client_service: State: 1
    uart:~$ [00:26:08.502,868] <dbg> net_lwm2m_rd_client: lwm2m_rd_client_service: State: 6
    uart:~$ [00:26:08.502,899] <dbg> net_lwm2m_registry: lwm2m_engine_get: path:1/0/1/0, level 3, buf:0x20032020, buflen:4
    uart:~$ [00:26:08.502,960] <dbg> net_lwm2m_registry: lwm2m_engine_get: path:1/0/0/0, level 3, buf:0x20032040, buflen:2
    uart:~$ [00:26:08.503,021] <inf> net_lwm2m_rd_client: RD Client started with endpoint '<MY_ENDPOINT>' with client lifetime 86400 using server object 0
    uart:~$ [00:26:08.503,112] <dbg> net_lwm2m_message_handling: lwm2m_parse_peerinfo: Parse url: coaps://<MY_URL>:5684
    uart:~$ [00:26:08.503,784] <dbg> net_lwm2m_registry: lwm2m_engine_get: path:0/1/2/0, level 3, buf:0x20031fc3, buflen:1
    uart:~$ uart:~$ [00:26:08.641,876] <dbg> net_lwm2m_registry: lwm2m_engine_get: path:0/1/2/0, level 3, buf:0x20031f8b, buflen:1
    uart:~$ [00:26:08.641,998] <dbg> lwm2m_security: load_credentials_to_modem: Existing credentials found on modem
    uart:~$ [00:26:08.642,822] <dbg> net_lwm2m_registry: lwm2m_engine_get: path:0/1/2/0, level 3, buf:0x20031fcb, buflen:1
    uart:~$ [00:26:08.827,178] <inf> net_lwm2m_engine: Connected, sock id 2
    uart:~$ [00:26:08.827,911] <dbg> net_lwm2m_registry: lwm2m_engine_get: path:1/0/1/0, level 3, buf:0x20031ff0, buflen:4
    uart:~$ [00:26:08.829,315] <dbg> net_lwm2m_rd_client: sm_send_registration: registration sent [<MY_IP>]
    uart:~$ [00:26:08.830,291] <dbg> app_lwm2m_client: rd_client_event: Disconnected
    uart:~$ [00:26:08.830,413] <inf> net_lwm2m_rd_client: Stop LWM2M Client: <MY_ENDPOINT>
    uart:~$ [00:26:08.831,481] <dbg> net_lwm2m_rd_client: lwm2m_rd_client_service: State: 17
    uart:~$ [00:26:08.833,190] <dbg> net_lwm2m_rd_client: lwm2m_rd_client_service: State: 0
    uart:~$ uart:~$ [00:26:08.916,229] <inf> app_lwm2m_client: Client connect to server
    uart:~$ [00:26:08.916,290] <inf> net_lwm2m_rd_client: Start LWM2M Client: <MY_ENDPOINT>
    uart:~$ [00:26:08.916,564] <dbg> net_lwm2m_rd_client: lwm2m_rd_client_service: State: 1
    uart:~$ [00:26:08.916,900] <dbg> net_lwm2m_rd_client: lwm2m_rd_client_service: State: 6
    uart:~$ [00:26:08.916,931] <dbg> net_lwm2m_registry: lwm2m_engine_get: path:1/0/1/0, level 3, buf:0x20032020, buflen:4
    uart:~$ [00:26:08.916,992] <dbg> net_lwm2m_registry: lwm2m_engine_get: path:1/0/0/0, level 3, buf:0x20032040, buflen:2
    uart:~$ [00:26:08.917,053] <inf> net_lwm2m_rd_client: RD Client started with endpoint '<MY_ENDPOINT>' with client lifetime 86400 using server object 0
    uart:~$ [00:26:08.917,114] <dbg> net_lwm2m_message_handling: lwm2m_parse_peerinfo: Parse url: coaps://<MY_URL>:5684
    uart:~$ [00:26:08.917,999] <dbg> net_lwm2m_registry: lwm2m_engine_get: path:0/1/2/0, level 3, buf:0x20031fc3, buflen:1
    uart:~$ [00:26:09.040,771] <inf> app_lwm2m_client: LwM2M is connecting to server
    uart:~$ uart:~$ [00:26:09.082,366] <dbg> net_lwm2m_registry: lwm2m_engine_get: path:0/1/2/0, level 3, buf:0x20031f8b, buflen:1
    uart:~$ [00:26:09.082,489] <dbg> lwm2m_security: load_credentials_to_modem: Existing credentials found on modem
    uart:~$ [00:26:09.083,099] <dbg> net_lwm2m_registry: lwm2m_engine_get: path:0/1/2/0, level 3, buf:0x20031fcb, buflen:1
    uart:~$ [00:26:09.207,244] <inf> net_lwm2m_engine: Connected, sock id 2
    uart:~$ [00:26:09.207,824] <dbg> net_lwm2m_registry: lwm2m_engine_get: path:1/0/1/0, level 3, buf:0x20031ff0, buflen:4
    uart:~$ [00:26:09.209,197] <dbg> net_lwm2m_rd_client: sm_send_registration: registration sent [<MY_IP>]
    uart:~$ [00:26:09.211,395] <dbg> net_lwm2m_rd_client: lwm2m_rd_client_service: State: 8
    uart:~$ uart:~$ [00:26:13.028,656] <dbg> at_monitor: at_monitor_task: AT notif: +CSCON: 0
    uart:~$ [00:26:13.028,717] <dbg> at_monitor: at_monitor_task: Dispatching to 0x39a7d
    uart:~$ [00:26:13.028,747] <dbg> lte_lc: at_handler_cscon: +CSCON notification
    uart:~$ [00:26:13.028,869] <dbg> lte_lc: event_handler_list_dispatch: Dispatching event: type=3
    uart:~$ [00:26:13.028,900] <dbg> lte_lc: event_handler_list_dispatch:  - handler=0x0003C989
    uart:~$ [00:26:13.028,930] <dbg> lte_lc: event_handler_list_dispatch:  - handler=0x00040D25
    uart:~$ [00:26:13.028,930] <dbg> lte_lc: event_handler_list_dispatch:  - handler=0x0001A8A5
    uart:~$ [00:26:13.028,961] <dbg> lte_lc: event_handler_list_dispatch: Done
    uart:~$ [00:26:13.128,784] <dbg> at_monitor: at_monitor_task: AT notif: %XT3412: 3239999
    uart:~$ [00:26:13.128,814] <dbg> at_monitor: at_monitor_task: Dispatching to 0x3992d
    uart:~$ [00:26:13.128,875] <dbg> lte_lc: at_handler_xt3412: %XT3412 notification
    uart:~$ uart:~$ [00:26:15.004,791] <dbg> at_monitor: at_monitor_task: AT notif: %XT3412: 0
    uart:~$ [00:26:15.004,821] <dbg> at_monitor: at_monitor_task: Dispatching to 0x3992d
    uart:~$ [00:26:15.004,852] <dbg> lte_lc: at_handler_xt3412: %XT3412 notification
    uart:~$ [00:26:15.105,010] <dbg> at_monitor: at_monitor_task: AT notif: +CSCON: 1
    uart:~$ [00:26:15.105,041] <dbg> at_monitor: at_monitor_task: Dispatching to 0x39a7d
    uart:~$ [00:26:15.105,072] <dbg> lte_lc: at_handler_cscon: +CSCON notification
    uart:~$ [00:26:15.105,224] <dbg> lte_lc: event_handler_list_dispatch: Dispatching event: type=3
    uart:~$ [00:26:15.105,224] <dbg> lte_lc: event_handler_list_dispatch:  - handler=0x0003C989
    uart:~$ [00:26:15.105,255] <dbg> lte_lc: event_handler_list_dispatch:  - handler=0x00040D25
    uart:~$ [00:26:15.105,285] <dbg> lte_lc: event_handler_list_dispatch:  - handler=0x0001A8A5
    uart:~$ [00:26:15.105,316] <dbg> lte_lc: event_handler_list_dispatch: Done
    uart:~$ uart:~$ [00:26:15.150,085] <dbg> net_lwm2m_rd_client: do_registration_reply_cb: Registration callback (code:2.1)
    uart:~$ [00:26:15.150,909] <dbg> lte_lc: parse_psm: TAU: 3240 sec, active time: -1 sec
    uart:~$ [00:26:15.150,970] <dbg> lte_lc: lte_lc_psm_get: TAU: 3240 sec, active time: -1 sec
    uart:~$ [00:26:15.151,000] <dbg> lwm2m_sec_con_man: lwm2m_utils_update_rptau: PSM deactivated
    uart:~$ [00:26:15.151,000] <dbg> app_lwm2m_client: rd_client_event: Registration complete
    uart:~$ [00:26:15.151,153] <inf> net_lwm2m_rd_client: Registration Done (EP='XXXXXXX')
    uart:~$ [00:26:15.151,336] <dbg> net_lwm2m_message_handling: lwm2m_udp_receive: reply 0x2000d7c0 handled and removed
    uart:~$ [00:26:15.151,397] <dbg> net_lwm2m_rd_client: lwm2m_rd_client_service: State: 9
    uart:~$ [00:26:15.236,083] <inf> app_lwm2m_client: LwM2M is connected to server
    uart:~$ [00:26:15.236,145] <dbg> date_time: date_time_update_thread: Updating date time UTC...
    uart:~$ [00:26:15.236,175] <dbg> date_time: date_time_update_thread: Using previously obtained time
    uart:~$ [00:26:15.236,206] <inf> app_lwm2m_client: Obtained date-time from modem
    uart:~$ [00:26:15.236,236] <dbg> net_lwm2m_registry: lwm2m_engine_set: path:3/0/13, buf:0x2003275c, len:4
    uart:~$ uart:~$ [00:26:17.922,058] <dbg> net_lwm2m_observation: engine_observe_node_init: OBSERVER ADDED 10351/0/50/0(3)
    uart:~$ [00:26:17.922,149] <dbg> net_lwm2m_observation: engine_observe_node_init: token:'afd3250c8d52644c' addr:<MY_IP>
    uart:~$ [00:26:17.922,180] <dbg> net_lwm2m_registry: lwm2m_engine_set: path:10351/0/50, buf:0x20031e9f, len:1
    

    After Registration update failure! we see lwm2m_utils_update_rptau: PSM deactivated. Our assumption is that in this situation the board previously went into LTE_OFFLINE and stayed offline.

    It seems like we are making some progress here!

  • I opened a new private ticket. But before I discovered that there is no dependency for this problem to the nrf_modem. It does not matter.

  • Have you tried changing the value directly in the code?

      

    We have now tried changing the value directly in the sdk, and this is how the logs look now:

    [00:01:03.867,492] <inf> app_lwm2m_client: LwM2M is connected to server
    [00:01:03.867,584] <inf> app_lwm2m_client: Obtained date-time from modem
    [00:01:22.783,782] <dbg> app_lwm2m_client: rd_client_event: Registration update started
    [00:01:27.884,124] <dbg> app_lwm2m_client: rd_client_event: Registration update failure!
    [00:01:27.891,876] <inf> net_lwm2m_rd_client: RD Client started with endpoint '<MY_ENDPOINT>' with client lifetime 86400 using server object 0
    [00:01:29.245,269] <inf> net_lwm2m_engine: Connected, sock id 2
    [00:01:29.248,382] <dbg> app_lwm2m_client: rd_client_event: Disconnected
    [00:01:29.248,504] <inf> net_lwm2m_rd_client: Stop LWM2M Client: <MY_ENDPOINT>
    [00:01:29.334,838] <inf> app_lwm2m_client: Client connect to server
    [00:01:29.334,869] <inf> net_lwm2m_rd_client: Start LWM2M Client: <MY_ENDPOINT>
    [00:01:29.335,540] <inf> net_lwm2m_rd_client: RD Client started with endpoint '<MY_ENDPOINT>' with client lifetime 86400 using server object 0
    [00:01:29.460,998] <inf> app_lwm2m_client: LwM2M is connecting to server
    [00:01:29.632,720] <inf> net_lwm2m_engine: Connected, sock id 2
    [00:01:29.785,278] <dbg> app_lwm2m_client: rd_client_event: Registration complete
    [00:01:29.785,430] <inf> net_lwm2m_rd_client: Registration Done (EP='xxxx')
    [00:01:29.868,164] <inf> app_lwm2m_client: LwM2M is connected to server
    [00:01:29.868,225] <inf> app_lwm2m_client: Obtained date-time from modem
    [00:01:48.784,393] <dbg> app_lwm2m_client: rd_client_event: Registration update started
    [00:01:53.886,108] <dbg> app_lwm2m_client: rd_client_event: Registration update failure!
    [00:01:53.893,859] <inf> net_lwm2m_rd_client: RD Client started with endpoint '<MY_ENDPOINT>' with client lifetime 86400 using server object 0
    [00:01:55.007,781] <inf> net_lwm2m_engine: Connected, sock id 2
    [00:01:55.010,894] <dbg> app_lwm2m_client: rd_client_event: Disconnected
    [00:01:55.011,016] <inf> net_lwm2m_rd_client: Stop LWM2M Client: <MY_ENDPOINT>
    [00:01:55.097,839] <inf> app_lwm2m_client: Client connect to server
    [00:01:55.097,900] <inf> net_lwm2m_rd_client: Start LWM2M Client: <MY_ENDPOINT>
    [00:01:55.098,541] <inf> net_lwm2m_rd_client: RD Client started with endpoint '<MY_ENDPOINT>' with client lifetime 86400 using server object 0
    [00:01:55.223,052] <inf> app_lwm2m_client: LwM2M is connecting to server
    [00:01:55.398,132] <inf> net_lwm2m_engine: Connected, sock id 2
    [00:01:55.553,161] <dbg> app_lwm2m_client: rd_client_event: Registration complete
    [00:01:55.553,314] <inf> net_lwm2m_rd_client: Registration Done (EP='xxxx')

    We forced this error by making our Leshan server unresponsive. With the usual code, the failure log shows up 4min7s after the registration update starts. Now, by changing the exchange timeout for this specific message, the code behaves as we want to:

    case ENGINE_UPDATE_SENT:
    	/* wait update to be done or abort */
    	timeout = EXCHANGE_LIFETIME;
    	break;

    We set the value to 5s, and the board starts to reregister after 5s instead of after 247s. 

    This is exactly how we want the board to behave. Is there any other way to declare the exchange timeouts? We do not want to fork the whole Github repo and make our customizations.

    Should we create an issue and/or PR on Github for the sdk?

    Again, thank you for you help.

Related