Hey Quinn, Thanks for your feedback.
Yes, the connection has to go via cellular network as the users are on the road.
Refering to your mentioned steps:
first connection enters the .failed(…) state once in poor reception area. This works perfect.
No further states are reported any more for the same connection. Here's a trace of the states and error codes from 1st connection onwards:
...
celluar network available
...
[20:49:47.GMT+2]
[NetworkManager:setupUDPConnection(lat:lon:):43
5] UDP in .preparing, available Interfaces: [pdp_ip0] --> OK
[20:49:54.GMT+2]
[NetworkManager:setupUDPConnection(lat:lon:):42
3] UDP in .ready, available Interfaces: [pdp_ip0] --> OK
...
celluar network loss
...
[21:15:12.GMT+2]
[NetworkManager:setupUDPConnection():44
2] UDP in .failed: 57 The operation couldn't be completed. (Network.NWError error 57 - Socket is not connected), available Interfaces: [pdp_ip0] --> OK, state .failed
[21:15:12.GMT+2]
[NetworkManager:receiveUDPConnection ():912]
Optional (unsatisfied (No network route)):The operation couldn't be completed. (Network.NWError error 57 - Socket is not connected) --> OK, state .failed (on downlink)
[21:15:12.GMT+2]
[NetworkManager:sendADSLdata():778] unsatisfied (No network route):POST beacons
The operation couldn't be completed.
(Network.NWError error 57 - Socket is not connected) --> OK, state .failed (on uplink)
...
celluar network available (again)
...
Even though the cellular network is available again (confirmed by load of a web site from within the app), the network state remains in .failed, and does not get updated anymore.
So, the question is: should connection.stateUpdateHandler report a state update even a connection state previously turned .failed?
You've mentioned the connection state should return to .ready under recovery of a strong network availability.
This isn't the case.
Is this already an origin of the issue?