Description
Description
I just moved from i9 Intel to Silicon M4. And now I see strange errors in my app during testing on files downloading. A lot of -1005 Connection Lost
or -1017 cannot parse response
with following lines like
nw_protocol_implementation_lookup_path [C38.1.1.2:2] No path found for 5410496762cbf3 <- com.apple.network
0x1178cf818 38 Server protocol violation 0x02 <- com.apple.cfnetwork h3connect
0x1178cf818 38 Control stream closed but connection is alive <- com.apple.cfnetwork h3connect
App iterate through the list of storage refs and tries to download (StorageReference.writeAsync(toFile:)
) the file if it does not exist locally. Mostly it happens sequentially, sometimes a little bit in parallel. If file failed it will be moved to the end of queue and retries later. Failures happens on the same files multiple time and at some rare occasions it does download.
Error appears only on simulator on M4 laptop, it does work on old laptop and on real device. I've notice that simulator on M4 using http3, so I start proxy that does not support http3 - and it start working fine.
So my conclusion is that problem with HTTP3
I still investigating, but maybe someone will drop idea or solution to this problem.
Reproducing the issue
not available at this moment
Firebase SDK Version
11.11.0
Xcode Version
16.3 (16E140)
Installation Method
Swift Package Manager
Firebase Product(s)
Storage
Targeted Platforms
iOS
Relevant Log Output
MyCode.swift:46
👀 Start downloading - 9bfjwHShMvRLjHJowCx7
11.11.0 - [FirebaseAuth][I-AUT000017] Has valid access token. Estimated expiration date:2025-04-08 18:28:36 +0000, current date: 2025-04-08 17:28:59 +0000
11.11.0 - [FirebasePerformance][I-PRF300005] URL length exceeds limits, truncating recorded URL - https://firebasestorage.googleapis.com:443/v0/b/******.appspot.com/o/PATH_TO_FILE_1.zip.
11.11.0 - [FirebasePerformance][I-PRF300005] URL length exceeds limits, truncating recorded URL - https://firebasestorage.googleapis.com:443/v0/b/******.appspot.com/o/PATH_TO_FILE_1.zip.
nw_connection_copy_connected_local_endpoint_block_invoke [C196] Connection has no local endpoint
nw_connection_copy_connected_local_endpoint_block_invoke [C196] Connection has no local endpoint
quic_conn_change_current_path [C196.1.1.1:2] [-e2ec972bce4de892] tried to change paths, but no alternatives were found
nw_connection_copy_connected_local_endpoint_block_invoke [C196] Connection has no local endpoint
nw_protocol_implementation_lookup_path [C196.1.1.1:2] No path found for 54fb7d625518029c
0x10a9d5e18 196 Server protocol violation 0x02
0x10a9d5e18 196 Control stream closed but connection is alive
nw_connection_copy_connected_local_endpoint_block_invoke [C198] Connection has no local endpoint
nw_connection_copy_connected_local_endpoint_block_invoke [C198] Connection has no local endpoint
quic_conn_change_current_path [C198.1.1.1:2] [-fc34761712275213] tried to change paths, but no alternatives were found
nw_connection_copy_connected_local_endpoint_block_invoke [C198] Connection has no local endpoint
nw_protocol_implementation_lookup_path [C198.1.1.1:2] No path found for 54ac50c7cc3bb4d
0x13b1af018 198 Server protocol violation 0x02
0x13b1af018 198 Control stream closed but connection is alive
nw_connection_copy_connected_local_endpoint_block_invoke [C200] Connection has no local endpoint
nw_connection_copy_connected_local_endpoint_block_invoke [C200] Connection has no local endpoint
quic_conn_change_current_path [C200.1.1.1:2] [-fcd7bf60df245c86] tried to change paths, but no alternatives were found
Task <02CDA635-F3B7-4625-970B-582603A62AD4>.<117> HTTP load failed, 2450/0 bytes (error code: -1017 [4:-1])
nw_connection_copy_connected_local_endpoint_block_invoke [C200] Connection has no local endpoint
nw_protocol_implementation_lookup_path [C200.1.1.1:2] No path found for d504b2162ebcddb1
Task <02CDA635-F3B7-4625-970B-582603A62AD4>.<117> finished with error [-1017] Error Domain=NSURLErrorDomain Code=-1017 "cannot parse response" UserInfo={_kCFStreamErrorCodeKey=-1, NSUnderlyingError=0x60000135c000 {Error Domain=kCFErrorDomainCFNetwork Code=-1017 "(null)" UserInfo={NSErrorPeerAddressKey=<CFData 0x6000064ad270 [0x1e6ebb4f0]>{length = 16, capacity = 16, bytes = 0x100201bb8efa4b0a0000000000000000}, _kCFStreamErrorCodeKey=-1, _kCFStreamErrorDomainKey=4}}, _NSURLErrorFailingURLSessionTaskErrorKey=LocalDownloadTask <02CDA635-F3B7-4625-970B-582603A62AD4>.<117>, _NSURLErrorRelatedURLSessionTaskErrorKey=(
"LocalDownloadTask <02CDA635-F3B7-4625-970B-582603A62AD4>.<117>"
), NSLocalizedDescription=cannot parse response, NSErrorFailingURLStringKey=https://firebasestorage.googleapis.com:443/v0/b/******.appspot.com/o/PATH_TO_FILE_1.zip?alt=media, NSErrorFailingURLKey=https://firebasestorage.googleapis.com:443/v0/b/******.appspot.com/o/PATH_TO_FILE_1.zip?alt=media, _kCFStreamErrorDomainKey=4}
0x109881618 200 Server protocol violation 0x02
0x109881618 200 Control stream closed but connection is alive
If using Swift Package Manager, the project's Package.resolved
Expand Package.resolved
snippet
Replace this line with the contents of your Package.resolved.
If using CocoaPods, the project's Podfile.lock
Expand Podfile.lock
snippet
Replace this line with the contents of your Podfile.lock!