Extremely slow provisioning of direct connected device with iOS after update to 15.4 or 15.4.1

The provisioning process for direct connected device using an iPhone or iPad is now extremely slow.

This is for a developer account and a “developer project/product”.
Extremely slow = works about 1/3 of the time and practically unusable.

Based on logs from the device (ESP32) I am reasonably sure that something in the http-communication during easysetup times out.

This was not the case before iOS 15.4.

So either it’s due to

  • my account
  • the OS.

I’ve tried multiple devices

Cheers

Hi, @senspix.
What do you mean by “provisioning process”? Is it that the events are delayed to be sent from SmartThings to the device?
Have you tested the behavior in Android?

The communication during provisioning, e.g. using a QR-code, is very slow. The device times out.

The steps after the iOS device identifies and parses the QR-code and thus contacts the Url
https://qr.samsungiots.com/?m=0A5d&s=007&r=STDKiI111u8tCgJE

After that the iOS device typically stalls or is slow and the device log indicates timeouts.

I can send logs possibly later today or tomorrow.

The Android devices work very well.

I have been developing 2 different direct connected products for the last 6 months, this is a new behavior for iOS devices.

Cheers

Ok, got it. Please, send the logs to build@smartthings.com so I can report this new behavior. Thanks!

Any news. Still the same issue with version 1.6.83 of iOS app from approx 1 week ago.

Timeout when trying to provision test device with QR-code. Android app works fine!

Cheers

Hi, @senspix. I replied to you in the original email you sent to build@smartthings.com

Here, I’ll include that info as well:

The team mentioned this issue is due to the SmartThings app camera permissions. There’s an issue with some non-Samsung mobile devices where the permissions to access the camera cannot be enabled.

This is a complex issue to solve so there’s no ETA on the fix. Something that could be of help is to check the current permissions of the SmartThings app in your mobile settings. Here’s a guide to do so and change them if necessary:
https://support.google.com/android/answer/9431959?hl=en

Hi,

I do not believe I have received an email reply for this issue.

This is an iOS issue not Android. I do not see how permissions problems on non Samsung phones can cause network timeout problems on iPhones.

Again:

  • I see a network timeout on my iOS device (iPhone 11) when trying to provision a direct connected device (initiated with a QR-code).
  • The provisioning works perfectly on the Android device I use.

Sorry about that, I put the instructions for Android.

The team mentioned that the QR option being unavailable now is intended while the issue is resolved. It’s also affecting the OCF devices’ onboarding.
I don’t know why your Android device is not being affected.
Are you planning to certify that direct-connected device? I saw that you can connect correctly to the device accessing it from “my testing devices”

Hi,

  1. No, connecting with iOS device when initiating the provisioning from “my testing devices” does not work either. There’s another network/connection issue. Se log output below.

  2. I am working on/with 2 different devices. I believe that one device will be certified and one will only use the label “Smartthings Compatible”.

See connections log below

D (08:59:41.955) event: no handlers have been registered for event WIFI_EVENT:14 posted to loop 0x3ffc0044
D (08:59:41.956) event: running post SYSTEM_EVENT:17 with handler 0x400f9520 and context 0x3ffc00dc on loop 0x3ffc0044
I (08:59:41.965) [IoT]: event_handler(147) > station:a6:23:1c:3a:60:cd join, AID=1
I (08:59:41.973) [IoT]: _iot_easysetup_wifi_event_cb(91) > Station joined to SoftAP
I (08:59:47.226) esp_netif_lwip: DHCP server assigned IP to a station, IP is: 192.168.4.2
D (08:59:47.226) event: no handlers have been registered for event IP_EVENT:2 posted to loop 0x3ffc0044
D (08:59:47.233) event: running post SYSTEM_EVENT:19 with handler 0x400f9520 and context 0x3ffc00dc on loop 0x3ffc0044
I (08:59:47.244) [IoT]: event_handler(167) > event_handler = 19
I (08:59:48.207) esp_netif_lwip: DHCP server assigned IP to a station, IP is: 192.168.4.2
D (08:59:48.207) event: no handlers have been registered for event IP_EVENT:2 posted to loop 0x3ffc0044
D (08:59:48.214) event: running post SYSTEM_EVENT:19 with handler 0x400f9520 and context 0x3ffc00dc on loop 0x3ffc0044
I (08:59:48.225) [IoT]: event_handler(167) > event_handler = 19
I (08:59:50.226) esp_netif_lwip: DHCP server assigned IP to a station, IP is: 192.168.4.2
D (08:59:50.227) event: no handlers have been registered for event IP_EVENT:2 posted to loop 0x3ffc0044
D (08:59:50.234) event: running post SYSTEM_EVENT:19 with handler 0x400f9520 and context 0x3ffc00dc on loop 0x3ffc0044
I (08:59:50.244) [IoT]: event_handler(167) > event_handler = 19
I (08:59:54.216) esp_netif_lwip: DHCP server assigned IP to a station, IP is: 192.168.4.2
D (08:59:54.217) event: no handlers have been registered for event IP_EVENT:2 posted to loop 0x3ffc0044
D (08:59:54.224) event: running post SYSTEM_EVENT:19 with handler 0x400f9520 and context 0x3ffc00dc on loop 0x3ffc0044
I (08:59:54.235) [IoT]: event_handler(167) > event_handler = 19
D (08:59:56.417) MAIN: Current minute: 539, test time: 193
I (09:00:04.546) esp_netif_lwip: DHCP server assigned IP to a station, IP is: 192.168.4.2
D (09:00:04.547) event: no handlers have been registered for event IP_EVENT:2 posted to loop 0x3ffc0044
D (09:00:04.554) event: running post SYSTEM_EVENT:19 with handler 0x400f9520 and context 0x3ffc00dc on loop 0x3ffc0044
I (09:00:04.565) [IoT]: event_handler(167) > event_handler = 19
I (09:00:05.553) esp_netif_lwip: DHCP server assigned IP to a station, IP is: 192.168.4.2
D (09:00:05.553) event: no handlers have been registered for event IP_EVENT:2 posted to loop 0x3ffc0044
D (09:00:05.561) event: running post SYSTEM_EVENT:19 with handler 0x400f9520 and context 0x3ffc00dc on loop 0x3ffc0044
I (09:00:05.571) [IoT]: event_handler(167) > event_handler = 19
W (117551) wifi:<ba-add>idx:4 (ifx:1, a6:23:1c:3a:60:cd), tid:0, ssn:2, winSize:64
I (09:00:10.322) [IoT]: _iot_easysetup_gen_get_payload(177) > waiting.. response for [0]
I (09:00:10.322) [IoT]: _do_iot_main_command(499) > curr_main_cmd:10, curr_main_state:1/1
I (09:00:10.329) [IoT]: _do_state_updating(1646) > Notification only with IOT_STATE_PROV_CONN_MOBILE
I (09:00:10.339) [IoT]: _do_status_report(304) > Call usr status_cb with 2/4
D (09:00:10.346) DEV_CTRL: status: 2, lv: 4. State: PROVISIONING_CONN
I (09:00:10.354) [IoT]: http_msg_handler(421) > get cmd[0] ok
I (133701) wifi:station: a6:23:1c:3a:60:cd leave, AID = 1, bss_flags is 658547, bss:0x3ffd5934
I (133701) wifi:new:<1,0>, old:<1,0>, ap:<1,1>, sta:<0,0>, prof:1
W (133701) wifi:<ba-del>idx
D (09:00:23.549) event: no handlers have been registered for event WIFI_EVENT:15 posted to loop 0x3ffc0044
D (09:00:23.558) event: running post SYSTEM_EVENT:18 with handler 0x400f9520 and context 0x3ffc00dc on loop 0x3ffc0044
I (09:00:23.569) [IoT]: event_handler(157) > station:a6:23:1c:3a:60:cd leave, AID=1
I (09:00:23.578) [IoT]: _iot_easysetup_wifi_event_cb(95) > Station left from SoftAP
I (09:00:23.586) [IoT]: _do_iot_main_command(499) > curr_main_cmd:10, curr_main_state:1/1
W (09:00:23.595) [IoT]: _do_state_updating(1711) > Iot-core task will be stopped, needed ext-triggering

I (09:00:23.605) [IoT]: http_cleanup_all_connection(39) > close listen socket
I (09:00:23.613) [IoT]: http_cleanup_all_connection(46) > close accept socket
I (09:00:23.621) [IoT]: es_http_deinit(184) > http tcp deinit complete!
I (09:00:23.628) [IoT]: iot_easysetup_deinit(566) > IOT_STATE_PROV_ES_DONE
I (09:00:23.635) [IoT]: iot_bsp_wifi_set_mode(234) > iot_bsp_wifi_set_mode = 0
I (133801) wifi:mode : null
D (09:00:23.646) event: running post WIFI_EVENT:3 with handler 0x400fa9ec and context 0x3ffc22f4 on loop 0x3ffc0044
I (09:00:23.647) [IoT]: _do_status_report(304) > Call usr status_cb with 1/0
D (09:00:23.656) esp_netif_handlers: esp_netif action stopped with netif0x3ffd22a0 from event_id=3
D (09:00:23.664) DEV_CTRL: status: 1, lv: 0. State: IDLE_STATE
D (09:00:23.677) event: running post SYSTEM_EVENT:3 with handler 0x400f9520 and context 0x3ffc00dc on loop 0x3ffc0044
I (09:00:23.682) [IoT]: _do_update_timeout(200) > Current timeout : 4294967295 for -1/-1
I (09:00:23.691) [IoT]: event_handler(112) > SYSTEM_EVENT_STA_STOP
I (09:00:23.701) [IoT]: _do_status_report(295) > Unsupported state -1 for 0/0
D (09:00:23.707) event: running post WIFI_EVENT:13 with handler 0x400fa9d4 and context 0x3ffc23a4 on loop 0x3ffc0044
D (09:00:23.724) esp_netif_handlers: esp_netif action stopped with netif0x3ffd3680 from event_id=13
E (09:00:23.733) [IoT]: st_conn_start(1908) > Can't go to PROV_CONFIRM (0x2)
D (09:00:23.734) event: running post SYSTEM_EVENT:16 with handler 0x400f9520 and context 0x3ffc00dc on loop 0x3ffc0044
I (09:00:23.741) [IoT]: st_conn_start(1910) > st_conn_start done (-7)
I (09:00:23.757) [IoT]: event_handler(140) > SYSTEM_EVENT_AP_STOP
W (09:00:23.765) MAIN: fail to start connection. err:-7

Hi!
I talked to the team again and they mentioned that the version of the app for iOS 15.4 has this issue. It will be solved in the next release of the ST app (as a reference: 1.6.85). There’s no ETA yet on its release.