Hi @eskimo , thanks for replying and yes, it's really a challenge for us.
============================================
We have had a short touch with this user. He/she is facing a problem where he/she can't receive a specific kind of message for many days. However, he/she has said that the problem has been resolved after uninstalling and reinstalling our app. This means that this issue is highly relevant to our app's data environment.
============================================
My colleague from the server side has informed me that the user's websocket behavior is weird. It connects to our server, sends a normal message(deciding whether the client needs APNs or not), and immediately disconnects.
A typical log(from another user also encountering bad address error) looks like this below:
[2023-05-26 20:53:42:872][Call webSocketTaskWithRequest:] Create Task: LocalWebSocketTask <XYZ>.<1> withRequest: <NSMutableURLRequest: 0x2807d0480> { URL: A_WS_URL}
[2023-05-26 20:53:42:872][Call receiveMessageWithCompletionHandler:] check&reconnect: create a new socket and resume, listen
[2023-05-26 20:53:43:083][Callback from URLSession:webSocketTask:didOpenWithProtocol:] Task: LocalWebSocketTask <XYZ>.<1>, didOpenWithProtocol (null)
[2023-05-26 20:53:43:083][Call bussinues code ]send push: needPush = 0, message = {"xx":"yy","zz":{"foo":"bar"}}
[2023-05-26 20:53:43:083][Call sendPingWithPongReceiveHandler] send ping
[2023-05-26 20:53:43:129][Callback from sendPingWithPongReceiveHandler:] receive pong success
[2023-05-26 20:53:43:154][Callback from receiveMessageWithCompletionHandler: ]handlerWebSocketTaskError: domain = kNWErrorDomainPOSIX, code = 14
[2023-05-26 20:53:43:154][Call cancel task since we encounter error, ]close&destory LocalWebSocketTask <XYZ>.<1>
[2023-05-26 20:53:43:154][Call bussinues code, try to reconnect later]start reconnect(timer: 0x282b9c180)
[2023-05-26 20:53:43:154][Callback from URLSession:webSocketTask:didCompleteWithError:] didComplete Task: LocalWebSocketTask <XYZ>.<1>
[2023-05-26 20:53:43:154]Callback from URLSession:webSocketTask:didCompleteWithError:] didComplete Error: Error Domain=kNWErrorDomainPOSIX Code=14 "Bad address" UserInfo={NSDescription=Bad address, _NSURLErrorRelatedURLSessionTaskErrorKey=(
"LocalWebSocketTask <XYZ>.<1>"
), _NSURLErrorFailingURLSessionTaskErrorKey=LocalWebSocketTask <XYZ>.<1>}
============================================
We have received further information about this issue after viewing more than 25k error reports:
- Most of the errors are related to network circumstances, like timeouts, which is understandable.
- 0.3% of devices are reporting a "bad address" error from "receiveMessageWithCompletionHandler:" and "sendMessage:completionHandler:".
- 95% of the devices reporting a "bad address" are equipped with iOS 13.x.
============================================
We are planning to use the old websocket implementation on iOS 13 instead of NSURLSessionWebSocketTask if we could not address this issue. :p
Thansk for paying attention to this issue :)