firebase-ios-sdk
firebase-ios-sdk copied to clipboard
FIRMessagingTokenFetchOperation went isFinished=YES without being started by the queue it is in
Description
Title is the error I get in the console when I try to log in in my app. I do not have the steps to replicate this 100%, but the most reliable way I have been able to replicate this is when updating my app from an older build (e.g. from TestFlight) to a newer one.
Reproducing the issue
// This function causes a crash when FirebaseApp.app()?.delete is called.
private func setupFirebase(completion: @escaping () -> Void) {
let filePath = /* dynamic file path based on scheme */
let fileopts = FirebaseOptions(contentsOfFile: filePath)!
if FirebaseApp.app() != nil {
FirebaseApp.app()?.delete { _ in
DispatchQueue.main.async {
FirebaseApp.configure(options: fileopts)
completion()
}
}
} else {
FirebaseApp.configure(options: fileopts)
completion()
}
}
Firebase SDK Version
8.15.0
Xcode Version
13.2.1
Installation Method
Swift Package Manager
Firebase Product(s)
Messaging
Targeted Platforms
iOS
Relevant Log Output
2022-11-10 20:41:43.007368+0530 FL3XX Crew[26026:6210149] 8.15.0 - [Firebase/Installations][I-FIS002001] -[FIRInstallationsIDController installationWithValidAuthTokenForcingRefresh:0], appName: __FIRAPP_DEFAULT
2022-11-10 20:41:43.007590+0530 FL3XX Crew[26026:6210149] 8.15.0 - [Firebase/Installations][I-FIS002000] -[FIRInstallationsIDController createGetInstallationItemPromise], appName: __FIRAPP_DEFAULT
2022-11-10 20:41:43.010022+0530 FL3XX Crew[26026:6210149] 8.15.0 - [Firebase/Messaging][I-FCM040000] Register request to https://fcmtoken.googleapis.com/register content: X-osv=15.1&device=5488829666173685770&X-scope=*&plat=2&app=com.fl3xx.FL3XX-Crew&app_ver=2.10.18&X-cliv=fiid-8.15.0&sender=254709422554&X-subtype=254709422554&appid=flDI2kpMJUPir9FrFgYHGb&apns_token=s_c98ea63054cc629fbd159eb8802e5edbdb6e377e90d83c96c021757aad9ae27d&gmp_app_id=1:254709422554:ios:fcb5d2224a9896447108e3
2022-11-10 20:41:43.035170+0530 FL3XX Crew[26026:6211053] 8.15.0 - [Firebase/Messaging][I-FCM034001] Token fetch successful, token: flDI2kpMJUPir9FrFgYHGb:APA91bEFTI9wwnDypNjqG6gXYKC6kq7mQcKy1QVtRc1rhr2lvA0Oj3d2biN9AQbXzbykXtj1mnd1c-IBKDwE5dsDUOTYV8PwlRhbGm68yXWayBHwQx5ZlBkggVjkFPes0cps2Wb392sW, authorizedEntity: 254709422554, scope:*
2022-11-10 20:41:45.933263+0530 FL3XX Crew[26026:6211053] 8.15.0 - [Firebase/Crashlytics][I-CLS000000] Cannot instantiate more than one instance of Crashlytics.
2022-11-10 20:41:45.934792+0530 FL3XX Crew[26026:6211053] 8.15.0 - [Firebase/Crashlytics][I-CLS000000] Cannot instantiate more than one instance of Crashlytics.
2022-11-10 20:41:45.936848+0530 FL3XX Crew[26026:6211053] 8.15.0 - [Firebase/Core][I-COR000006] Deleting app named __FIRAPP_DEFAULT
2022-11-10 20:41:45.937006+0530 FL3XX Crew[26026:6211053] 8.15.0 - [Firebase/Core][I-COR000003] The default Firebase app has not yet been configured. Add `FirebaseApp.configure()` to your application initialization. This can be done in in the App Delegate's application(_:didFinishLaunchingWithOptions:)` (or the `@main` struct's initializer in SwiftUI). Read more: https://goo.gl/ctyzm8.
2022-11-10 20:41:45.989793+0530 FL3XX Crew[26026:6209977] *** FIRMessagingTokenFetchOperation 0x123d9e110 went isFinished=YES without being started by the queue it is in
2022-11-10 20:41:45.989838+0530 FL3XX Crew[26026:6209977] *** FIRMessagingTokenFetchOperation 0x1258b32a0 went isFinished=YES without being started by the queue it is in
2022-11-10 20:41:45.989867+0530 FL3XX Crew[26026:6209977] *** FIRMessagingTokenFetchOperation 0x125878f20 went isFinished=YES without being started by the queue it is in
2022-11-10 20:41:45.989949+0530 FL3XX Crew[26026:6209977] *** FIRMessagingTokenFetchOperation 0x112556e20 went isFinished=YES without being started by the queue it is in
2022-11-10 20:41:45.990113+0530 FL3XX Crew[26026:6209977] *** FIRMessagingTokenFetchOperation 0x122049a50 went isFinished=YES without being started by the queue it is in
2022-11-10 20:41:45.990213+0530 FL3XX Crew[26026:6209977] *** FIRMessagingTokenFetchOperation 0x1259e7c20 went isFinished=YES without being started by the queue it is in
2022-11-10 20:41:45.992591+0530 FL3XX Crew[26026:6209977] *** FIRMessagingTokenFetchOperation 0x1259f25e0 went isFinished=YES without being started by the queue it is in
If using Swift Package Manager, the project's Package.resolved
Expand Package.resolved
snippet
{"object":{"pins":[{"package":"abseil","repositoryURL":"https://github.com/firebase/abseil-cpp-SwiftPM.git","state":{"branch":null,"revision":"583de9bd60f66b40e78d08599cc92036c2e7e4e1","version":"0.20220203.2"}},{"package":"Alamofire","repositoryURL":"https://github.com/Alamofire/Alamofire.git","state":{"branch":null,"revision":"8dd85aee02e39dd280c75eef88ffdb86eed4b07b","version":"5.6.2"}},{"package":"AppAuth","repositoryURL":"https://github.com/openid/AppAuth-iOS.git","state":{"branch":null,"revision":"3d36a58a2b736f7bc499453e996a704929b25080","version":"1.6.0"}},{"package":"BetterSheet","repositoryURL":"https://github.com/egeniq/BetterSheet.git","state":{"branch":null,"revision":"3755b61311812e6751029f1bff47640f3779adc7","version":"1.0.0"}},{"package":"BonMot","repositoryURL":"https://github.com/Rightpoint/BonMot.git","state":{"branch":null,"revision":"2df34a28c97e2413c44a7be70b6dd15adf783baf","version":"6.1.1"}},{"package":"BoringSSL-GRPC","repositoryURL":"https://github.com/firebase/boringssl-SwiftPM.git","state":{"branch":null,"revision":"dd3eda2b05a3f459fc3073695ad1b28659066eab","version":"0.9.1"}},{"package":"CocoaLumberjack","repositoryURL":"https://github.com/CocoaLumberjack/CocoaLumberjack.git","state":{"branch":null,"revision":"0188d31089b5881a269e01777be74c7316924346","version":"3.8.0"}},{"package":"Defaults","repositoryURL":"https://github.com/sindresorhus/Defaults.git","state":{"branch":null,"revision":"981ccb0a01c54abbe3c12ccb8226108527bbf115","version":"6.3.0"}},{"package":"Firebase","repositoryURL":"https://github.com/firebase/firebase-ios-sdk.git","state":{"branch":null,"revision":"111d8d6ad1a1afd6c8e9561d26e55ab1e74fcb42","version":"8.15.0"}},{"package":"FXKit","repositoryURL":"[email protected]:FL3XX/FXKit-ios.git","state":{"branch":"qatar-exec","revision":"085ca2c01d01362128731fd6a3f68eadab5d2f5e","version":null}},{"package":"FXLogin","repositoryURL":"[email protected]:FL3XX/FXLogin-ios.git","state":{"branch":"qatar-exec","revision":"b23f642c5c796cf914f4fc34348b1d674b98df05","version":null}},{"package":"GoogleAppMeasurement","repositoryURL":"https://github.com/google/GoogleAppMeasurement.git","state":{"branch":null,"revision":"ef819db8c58657a6ca367322e73f3b6322afe0a2","version":"8.15.0"}},{"package":"GoogleDataTransport","repositoryURL":"https://github.com/google/GoogleDataTransport.git","state":{"branch":null,"revision":"5056b15c5acbb90cd214fe4d6138bdf5a740e5a8","version":"9.2.0"}},{"package":"GoogleSignIn","repositoryURL":"https://github.com/google/GoogleSignIn-iOS.git","state":{"branch":null,"revision":"9c9b36af86a4dd3da16048a36cf37351e63ccfe1","version":"6.2.4"}},{"package":"GoogleUtilities","repositoryURL":"https://github.com/google/GoogleUtilities.git","state":{"branch":null,"revision":"68ea347bdb1a69e2d2ae2e25cd085b6ef92f64cb","version":"7.9.0"}},{"package":"gRPC","repositoryURL":"https://github.com/grpc/grpc-ios.git","state":{"branch":null,"revision":"8440b914756e0d26d4f4d054a1c1581daedfc5b6","version":"1.44.3-grpc"}},{"package":"GTMSessionFetcher","repositoryURL":"https://github.com/google/gtm-session-fetcher.git","state":{"branch":null,"revision":"4e9bbf2808b8fee444e84a48f5f3c12641987d3e","version":"1.7.2"}},{"package":"GTMAppAuth","repositoryURL":"https://github.com/google/GTMAppAuth.git","state":{"branch":null,"revision":"6dee0cde8a1b223737a5159e55e6b4ec16bbbdd9","version":"1.3.1"}},{"package":"IQKeyboardManagerSwift","repositoryURL":"https://github.com/hackiftekhar/IQKeyboardManager.git","state":{"branch":null,"revision":"474f849accae40fe61b5302d9b057dd48ee073ba","version":"6.5.9"}},{"package":"JTAppleCalendar","repositoryURL":"https://github.com/patchthecode/JTAppleCalendar.git","state":{"branch":null,"revision":"89bc6f1c0426b3bd2856409ec600333a7d087e1b","version":"8.0.4"}},{"package":"KeychainSwift","repositoryURL":"https://github.com/evgenyneu/keychain-swift.git","state":{"branch":null,"revision":"96fb84f45a96630e7583903bd7e08cf095c7a7ef","version":"19.0.0"}},{"package":"leveldb","repositoryURL":"https://github.com/firebase/leveldb.git","state":{"branch":null,"revision":"0706abcc6b0bd9cedfbb015ba840e4a780b5159b","version":"1.22.2"}},{"package":"Logger","repositoryURL":"https://github.com/f-meloni/Logger","state":{"branch":null,"revision":"53c3ecca5abe8cf46697e33901ee774236d94cce","version":"0.2.3"}},{"package":"Lottie","repositoryURL":"https://github.com/airbnb/lottie-ios.git","state":{"branch":null,"revision":"b4bd0604ded9574807f41b4004b57dd1226a30a4","version":"3.5.0"}},{"package":"MagazineLayout","repositoryURL":"https://github.com/airbnb/MagazineLayout","state":{"branch":null,"revision":"8cb3e72038b056317c8402d9ad52fb1c7dbd68db","version":"1.6.11"}},{"package":"MSAL","repositoryURL":"https://github.com/AzureAD/microsoft-authentication-library-for-objc","state":{"branch":null,"revision":"31a806298d6aa71b40504e7ebda6d6a8923f0ebf","version":"1.2.5"}},{"package":"Moya","repositoryURL":"https://github.com/Moya/Moya.git","state":{"branch":null,"revision":"b3e5a233e0d85fd4d69f561c80988590859c7dee","version":"14.0.0"}},{"package":"nanopb","repositoryURL":"https://github.com/firebase/nanopb.git","state":{"branch":null,"revision":"7ee9ef9f627d85cbe1b8c4f49a3ed26eed216c77","version":"2.30908.0"}},{"package":"Nimble","repositoryURL":"https://github.com/Quick/Nimble.git","state":{"branch":null,"revision":"7a46a5fc86cb917f69e3daf79fcb045283d8f008","version":"8.1.2"}},{"package":"NSObject-Rx","repositoryURL":"https://github.com/RxSwiftCommunity/NSObject-Rx","state":{"branch":null,"revision":"3dc30072b740ec35a3949ac8a8217f590a7c59b7","version":"5.1.1"}},{"package":"Nuke","repositoryURL":"https://github.com/kean/Nuke.git","state":{"branch":null,"revision":"7f73ceaeacd5df75a7994cd82e165ad9ff1815db","version":"9.6.1"}},{"package":"PackageConfig","repositoryURL":"https://github.com/shibapm/PackageConfig.git","state":{"branch":null,"revision":"bf90dc69fa0792894b08a0b74cf34029694ae486","version":"0.13.0"}},{"package":"PanModal","repositoryURL":"https://github.com/jordanpichler/PanModal.git","state":{"branch":null,"revision":"8f38a7c4490dccb77eba62f6824af1833be7d845","version":"1.2.8"}},{"package":"Promises","repositoryURL":"https://github.com/google/promises.git","state":{"branch":null,"revision":"3e4e743631e86c8c70dbc6efdc7beaa6e90fd3bb","version":"2.1.1"}},{"package":"Quick","repositoryURL":"https://github.com/Quick/Quick.git","state":{"branch":null,"revision":"09b3becb37cb2163919a3842a4c5fa6ec7130792","version":"2.2.1"}},{"package":"QuickLayout","repositoryURL":"https://github.com/huri000/QuickLayout","state":{"branch":null,"revision":"6be62decbe508d8fc8f9dbafc349d05bab03c38b","version":"3.0.1"}},{"package":"Reachability","repositoryURL":"https://github.com/ashleymills/Reachability.swift.git","state":{"branch":null,"revision":"c01bbdf2d633cf049ae1ed1a68a2020a8bda32e2","version":"5.1.0"}},{"package":"ReactiveSwift","repositoryURL":"https://github.com/Moya/ReactiveSwift.git","state":{"branch":null,"revision":"f195d82bb30e412e70446e2b4a77e1b514099e88","version":"6.1.0"}},{"package":"Realm","repositoryURL":"https://github.com/realm/realm-cocoa.git","state":{"branch":null,"revision":"d6f68b8f613dca3b13430da5e0be5d27b500f486","version":"10.7.7"}},{"package":"RealmDatabase","repositoryURL":"https://github.com/realm/realm-core","state":{"branch":null,"revision":"018adb3469c2882904febca251778129ef4a9b70","version":"10.7.2"}},{"package":"Rocket","repositoryURL":"https://github.com/shibapm/Rocket","state":{"branch":null,"revision":"f75c9736733b489a3456b4f3a47cf13adb99f197","version":"0.9.2"}},{"package":"RxDataSources","repositoryURL":"https://github.com/RxSwiftCommunity/RxDataSources","state":{"branch":null,"revision":"a18cee01c9ee55f04d0c7eb15c77a96c3648c88e","version":"4.0.1"}},{"package":"RxExpect","repositoryURL":"https://github.com/devxoul/RxExpect.git","state":{"branch":null,"revision":"c3a3bb3d46ee831582c6619ecc48cda1cdbff890","version":"2.0.0"}},{"package":"RxGesture","repositoryURL":"https://github.com/RxSwiftCommunity/RxGesture","state":{"branch":null,"revision":"867f176b6695829e350fafc00b5a849bb46a1857","version":"3.0.3"}},{"package":"RxOptional","repositoryURL":"https://github.com/RxSwiftCommunity/RxOptional.git","state":{"branch":null,"revision":"98a1895918e9ba9735a15207dd9c7120e9f51843","version":"4.1.0"}},{"package":"RxSwift","repositoryURL":"https://github.com/ReactiveX/RxSwift.git","state":{"branch":null,"revision":"cec68169a048a079f461ba203fe85636548d7a89","version":"5.1.3"}},{"package":"RxSwiftExt","repositoryURL":"https://github.com/RxSwiftCommunity/RxSwiftExt","state":{"branch":null,"revision":"9620cd55a58c1cf3370375140c45379c40049f55","version":"5.2.0"}},{"package":"RxViewController","repositoryURL":"https://github.com/devxoul/RxViewController","state":{"branch":null,"revision":"2974fc02742497ee26ba3622ced199818d580444","version":"1.0.0"}},{"package":"Signals","repositoryURL":"https://github.com/blinkmeoff/Signals.git","state":{"branch":"master","revision":"3f7fb488a24d3494d451f2301540e14f9f8a50ee","version":null}},{"package":"Siren","repositoryURL":"https://github.com/ArtSabintsev/Siren.git","state":{"branch":null,"revision":"9173fc529731705a737658b2801ccbc19dd385c8","version":"5.8.1"}},{"package":"SkeletonView","repositoryURL":"https://github.com/Juanpe/SkeletonView.git","state":{"branch":null,"revision":"b640c1d8eee79c3a5ad6e0ae1afd2ae0fea30423","version":"1.29.3"}},{"package":"SkyFloatingLabelTextField","repositoryURL":"https://github.com/Skyscanner/SkyFloatingLabelTextField.git","state":{"branch":null,"revision":"a0750ebbc7311f3b3debf99c5e59338e854afa59","version":"4.0.0"}},{"package":"SnapKit","repositoryURL":"https://github.com/SnapKit/SnapKit.git","state":{"branch":null,"revision":"f222cbdf325885926566172f6f5f06af95473158","version":"5.6.0"}},{"package":"swift-log","repositoryURL":"https://github.com/apple/swift-log.git","state":{"branch":null,"revision":"6fe203dc33195667ce1759bf0182975e4653ba1c","version":"1.4.4"}},{"package":"SwiftProtobuf","repositoryURL":"https://github.com/apple/swift-protobuf.git","state":{"branch":null,"revision":"88c7d15e1242fdb6ecbafbc7926426a19be1e98a","version":"1.20.2"}},{"package":"SwiftDate","repositoryURL":"https://github.com/malcommac/SwiftDate.git","state":{"branch":null,"revision":"6190d0cefff3013e77ed567e6b074f324e5c5bf5","version":"6.3.1"}},{"package":"SwiftEntryKit","repositoryURL":"https://github.com/jordanpichler/SwiftEntryKit.git","state":{"branch":null,"revision":"a4f66016562d6dc2253e3f72e6af9dfa64b34ccb","version":"1.2.7"}},{"package":"SwifterSwift","repositoryURL":"https://github.com/SwifterSwift/SwifterSwift.git","state":{"branch":null,"revision":"933f27d8e7fa0bf8200a5d6235e0de383b801126","version":"5.3.0"}},{"package":"SwiftMessages","repositoryURL":"https://github.com/SwiftKickMobile/SwiftMessages","state":{"branch":null,"revision":"b29dd21090b708aa0ae9ecbaf6e2d0487028dc3f","version":"9.0.6"}},{"package":"SwiftShell","repositoryURL":"https://github.com/kareman/SwiftShell","state":{"branch":null,"revision":"beebe43c986d89ea5359ac3adcb42dac94e5e08a","version":"4.1.2"}},{"package":"TOCropViewController","repositoryURL":"https://github.com/TimOliver/TOCropViewController.git","state":{"branch":null,"revision":"d0470491f56e734731bbf77991944c0dfdee3e0e","version":"2.6.1"}},{"package":"Yams","repositoryURL":"https://github.com/jpsim/Yams","state":{"branch":null,"revision":"c947a306d2e80ecb2c0859047b35c73b8e1ca27f","version":"2.0.0"}}]},"version":1}
If using CocoaPods, the project's Podfile.lock
Expand Podfile.lock
snippet
Replace this line with the contents of your Podfile.lock!
I couldn't figure out how to label this issue, so I've labeled it for a human to triage. Hang tight.
FYI I cannot update Xcode or Firebase version till 2023 so that is not an option for now.
Elsewhere on the internet where Operation went isFinished=YES without being started by the queue it is in
:
- https://github.com/robertmryan/AFHTTPSessionOperation/issues/7
- https://stackoverflow.com/questions/42789556/what-do-i-do-with-this-exception-tripped-shortly-after-cancelling-all-operations
- https://stackoverflow.com/questions/48137896/operation-went-isfinished-yes-without-being-started-by-the-queue-it-is-in
Thanks for reporting, @p16r. I tried to reproduce the issue but I wasn't able to get the same error. Could you clarify on what you mean by "I have been able to replicate this is when updating my app from an older build (e.g. from TestFlight) to a newer one."? Does it mean you're updating your app itself or the SDK version? Also, did you make any changes in your code that might be the possible cause the issue?
Thanks for helping me with this! I mean the most reliable method to replicate this crash is by updating the app from a previous build e.g. 2.10.4 build 299 to 2.10.4 build 300. i.e. I download 2.10.4-299 from TestFlight and use it on my phone, then download 2.10.4-300, and when I first run the new build, it will crash. But next run onwards it won't. I'm not changing any of the Firebase-related code in between builds. Neither is the SDK version changing between builds.
Hey, just wanted to give an update on this issue. I was able to avoid this crash by replacing existing completion-based API calls with async/await calls. Thanks for helping me out with this issue!