Skip to content

馃悰 [firebase_auth] Task is not yet complete聽#11297

Description

@Fudal

Bug report

Describe the bug
After update 4.7.0 my app is still crashing with errors:

E/BasicMessageChannel#dev.flutter.pigeon.FirebaseAuthUserHostApi.getIdToken(28161): Failed to handle message
E/BasicMessageChannel#dev.flutter.pigeon.FirebaseAuthUserHostApi.getIdToken(28161): java.lang.IllegalStateException: Task is not yet complete
E/BasicMessageChannel#dev.flutter.pigeon.FirebaseAuthUserHostApi.getIdToken(28161): 	at com.google.android.gms.common.internal.Preconditions.checkState(com.google.android.gms:play-services-basement@@18.2.0:2)
E/BasicMessageChannel#dev.flutter.pigeon.FirebaseAuthUserHostApi.getIdToken(28161): 	at com.google.android.gms.tasks.zzw.zzf(com.google.android.gms:play-services-tasks@@18.0.2:1)
E/BasicMessageChannel#dev.flutter.pigeon.FirebaseAuthUserHostApi.getIdToken(28161): 	at com.google.android.gms.tasks.zzw.getResult(com.google.android.gms:play-services-tasks@@18.0.2:1)
E/BasicMessageChannel#dev.flutter.pigeon.FirebaseAuthUserHostApi.getIdToken(28161): 	at io.flutter.plugins.firebase.auth.FlutterFirebaseAuthUser.getIdToken(FlutterFirebaseAuthUser.java:95)
E/BasicMessageChannel#dev.flutter.pigeon.FirebaseAuthUserHostApi.getIdToken(28161): 	at io.flutter.plugins.firebase.auth.GeneratedAndroidFirebaseAuth$FirebaseAuthUserHostApi.lambda$setup$1(GeneratedAndroidFirebaseAuth.java:3256)
E/BasicMessageChannel#dev.flutter.pigeon.FirebaseAuthUserHostApi.getIdToken(28161): 	at io.flutter.plugins.firebase.auth.GeneratedAndroidFirebaseAuth$FirebaseAuthUserHostApi$$ExternalSyntheticLambda9.onMessage(Unknown Source:2)
E/BasicMessageChannel#dev.flutter.pigeon.FirebaseAuthUserHostApi.getIdToken(28161): 	at io.flutter.plugin.common.BasicMessageChannel$IncomingMessageHandler.onMessage(BasicMessageChannel.java:217)
E/BasicMessageChannel#dev.flutter.pigeon.FirebaseAuthUserHostApi.getIdToken(28161): 	at io.flutter.embedding.engine.dart.DartMessenger.invokeHandler(DartMessenger.java:295)
E/BasicMessageChannel#dev.flutter.pigeon.FirebaseAuthUserHostApi.getIdToken(28161): 	at io.flutter.embedding.engine.dart.DartMessenger.lambda$dispatchMessageToQueue$0$io-flutter-embedding-engine-dart-DartMessenger(DartMessenger.java:322)
E/BasicMessageChannel#dev.flutter.pigeon.FirebaseAuthUserHostApi.getIdToken(28161): 	at io.flutter.embedding.engine.dart.DartMessenger$$ExternalSyntheticLambda0.run(Unknown Source:12)
E/BasicMessageChannel#dev.flutter.pigeon.FirebaseAuthUserHostApi.getIdToken(28161): 	at android.os.Handler.handleCallback(Handler.java:942)
E/BasicMessageChannel#dev.flutter.pigeon.FirebaseAuthUserHostApi.getIdToken(28161): 	at android.os.Handler.dispatchMessage(Handler.java:99)
E/BasicMessageChannel#dev.flutter.pigeon.FirebaseAuthUserHostApi.getIdToken(28161): 	at android.os.Looper.loopOnce(Looper.java:240)
E/BasicMessageChannel#dev.flutter.pigeon.FirebaseAuthUserHostApi.getIdToken(28161): 	at android.os.Looper.loop(Looper.java:351)
E/BasicMessageChannel#dev.flutter.pigeon.FirebaseAuthUserHostApi.getIdToken(28161): 	at android.app.ActivityThread.main(ActivityThread.java:8416)
E/BasicMessageChannel#dev.flutter.pigeon.FirebaseAuthUserHostApi.getIdToken(28161): 	at java.lang.reflect.Method.invoke(Native Method)
E/BasicMessageChannel#dev.flutter.pigeon.FirebaseAuthUserHostApi.getIdToken(28161): 	at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:584)
E/BasicMessageChannel#dev.flutter.pigeon.FirebaseAuthUserHostApi.getIdToken(28161): 	at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1013)
E/AndroidRuntime(28161): java.lang.IllegalStateException: Reply already submitted
E/AndroidRuntime(28161): 	at io.flutter.embedding.engine.dart.DartMessenger$Reply.reply(DartMessenger.java:435)
E/AndroidRuntime(28161): 	at io.flutter.plugin.common.BasicMessageChannel$IncomingMessageHandler$1.reply(BasicMessageChannel.java:222)
E/AndroidRuntime(28161): 	at io.flutter.plugins.firebase.auth.GeneratedAndroidFirebaseAuth$FirebaseAuthUserHostApi$2.success(GeneratedAndroidFirebaseAuth.java:3247)
E/AndroidRuntime(28161): 	at io.flutter.plugins.firebase.auth.GeneratedAndroidFirebaseAuth$FirebaseAuthUserHostApi$2.success(GeneratedAndroidFirebaseAuth.java:3244)
E/AndroidRuntime(28161): 	at io.flutter.plugins.firebase.auth.FlutterFirebaseAuthUser.lambda$getIdToken$1(FlutterFirebaseAuthUser.java:88)
E/AndroidRuntime(28161): 	at io.flutter.plugins.firebase.auth.FlutterFirebaseAuthUser$$ExternalSyntheticLambda2.onComplete(Unknown Source:2)
E/AndroidRuntime(28161): 	at com.google.android.gms.tasks.zzi.run(com.google.android.gms:play-services-tasks@@18.0.2:1)

Steps to reproduce

Steps to reproduce the behavior:

try {
      final FirebaseAuth auth = FirebaseAuth.instance;
      auth.tenantId = AppConfigValues.firebaseTenantId;
      final IdTokenResult? token = await auth.currentUser?.getIdTokenResult(true);
} on FirebaseAuthException catch (e) {
      // here is error:
      e = {FirebaseAuthException} [firebase_auth/channel-error] Unable to establish connection on channel.
       plugin = "firebase_auth"
       message = "Unable to establish connection on channel."
       code = "channel-error"
       stackTrace = null
       email = null
       credential = null
       phoneNumber = null
       tenantId = null
}

Expected behavior

Working without errors


Flutter doctor

Run flutter doctor and paste the output below:

Click To Expand
Doctor summary (to see all details, run flutter doctor -v):
[!] Flutter (Channel stable, 3.10.6, on macOS 13.4.1 22F770820d darwin-arm64, locale pl-PL)
[鉁揮 Android toolchain - develop for Android devices (Android SDK version 33.0.1)
[鉁揮 Xcode - develop for iOS and macOS (Xcode 14.3.1)
[鉁揮 Chrome - develop for the web
[鉁揮 Android Studio (version 2022.2)
[鉁揮 IntelliJ IDEA Community Edition (version 2023.1.4)
[鉁揮 VS Code (version 1.79.2)
Unknown architecture undefined_arch, defaulting to arm64
[鉁揮 Connected device (3 available)
[鉁揮 Network resources


Activity

  1. cmenkemeller commented on Jul 17, 2023

    @cmenkemeller

    We are also experiencing the same issue after updating to 4.7.0

  2. darshankawar commented on Jul 17, 2023

    @darshankawar

    Thanks for the report. I was able to replicate the reported error which leads to app crash, although it doesn't seem to be specific to 4.7.0, as with 4.6.1 too, I was able to see same crash.

    console error log
    
    W/System  (12976): Ignoring header X-Firebase-Locale because its value was null.
    E/BasicMessageChannel#dev.flutter.pigeon.FirebaseAuthUserHostApi.getIdToken(12976): Failed to handle message
    E/BasicMessageChannel#dev.flutter.pigeon.FirebaseAuthUserHostApi.getIdToken(12976): java.lang.IllegalStateException: Task is not yet complete
    E/BasicMessageChannel#dev.flutter.pigeon.FirebaseAuthUserHostApi.getIdToken(12976): 	at com.google.android.gms.common.internal.Preconditions.checkState(com.google.android.gms:play-services-basement@@18.2.0:2)
    E/BasicMessageChannel#dev.flutter.pigeon.FirebaseAuthUserHostApi.getIdToken(12976): 	at com.google.android.gms.tasks.zzw.zzf(com.google.android.gms:play-services-tasks@@18.0.2:1)
    E/BasicMessageChannel#dev.flutter.pigeon.FirebaseAuthUserHostApi.getIdToken(12976): 	at com.google.android.gms.tasks.zzw.getResult(com.google.android.gms:play-services-tasks@@18.0.2:1)
    E/BasicMessageChannel#dev.flutter.pigeon.FirebaseAuthUserHostApi.getIdToken(12976): 	at io.flutter.plugins.firebase.auth.FlutterFirebaseAuthUser.getIdToken(FlutterFirebaseAuthUser.java:95)
    E/BasicMessageChannel#dev.flutter.pigeon.FirebaseAuthUserHostApi.getIdToken(12976): 	at io.flutter.plugins.firebase.auth.GeneratedAndroidFirebaseAuth$FirebaseAuthUserHostApi$-CC.lambda$setup$1(GeneratedAndroidFirebaseAuth.java:3256)
    E/BasicMessageChannel#dev.flutter.pigeon.FirebaseAuthUserHostApi.getIdToken(12976): 	at io.flutter.plugins.firebase.auth.-$$Lambda$GeneratedAndroidFirebaseAuth$FirebaseAuthUserHostApi$KGEhiXqLoI-20POdMTrijqz3nE4.onMessage(Unknown Source:2)
    E/BasicMessageChannel#dev.flutter.pigeon.FirebaseAuthUserHostApi.getIdToken(12976): 	at io.flutter.plugin.common.BasicMessageChannel$IncomingMessageHandler.onMessage(BasicMessageChannel.java:219)
    E/BasicMessageChannel#dev.flutter.pigeon.FirebaseAuthUserHostApi.getIdToken(12976): 	at io.flutter.embedding.engine.dart.DartMessenger.invokeHandler(DartMessenger.java:295)
    E/BasicMessageChannel#dev.flutter.pigeon.FirebaseAuthUserHostApi.getIdToken(12976): 	at io.flutter.embedding.engine.dart.DartMessenger.lambda$dispatchMessageToQueue$0$DartMessenger(DartMessenger.java:322)
    E/BasicMessageChannel#dev.flutter.pigeon.FirebaseAuthUserHostApi.getIdToken(12976): 	at io.flutter.embedding.engine.dart.-$$Lambda$DartMessenger$2j2MERcK825A5j1fv5sZ7xB2Iuo.run(Unknown Source:12)
    E/BasicMessageChannel#dev.flutter.pigeon.FirebaseAuthUserHostApi.getIdToken(12976): 	at android.os.Handler.handleCallback(Handler.java:942)
    E/BasicMessageChannel#dev.flutter.pigeon.FirebaseAuthUserHostApi.getIdToken(12976): 	at android.os.Handler.dispatchMessage(Handler.java:99)
    E/BasicMessageChannel#dev.flutter.pigeon.FirebaseAuthUserHostApi.getIdToken(12976): 	at android.os.Looper.loopOnce(Looper.java:201)
    E/BasicMessageChannel#dev.flutter.pigeon.FirebaseAuthUserHostApi.getIdToken(12976): 	at android.os.Looper.loop(Looper.java:288)
    E/BasicMessageChannel#dev.flutter.pigeon.FirebaseAuthUserHostApi.getIdToken(12976): 	at android.app.ActivityThread.main(ActivityThread.java:7872)
    E/BasicMessageChannel#dev.flutter.pigeon.FirebaseAuthUserHostApi.getIdToken(12976): 	at java.lang.reflect.Method.invoke(Native Method)
    E/BasicMessageChannel#dev.flutter.pigeon.FirebaseAuthUserHostApi.getIdToken(12976): 	at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:548)
    E/BasicMessageChannel#dev.flutter.pigeon.FirebaseAuthUserHostApi.getIdToken(12976): 	at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:936)
    W/LocalRequestInterceptor(12976): Error getting App Check token; using placeholder token instead. Error: com.google.firebase.FirebaseException: No AppCheckProvider installed.
    E/flutter (12976): [ERROR:flutter/runtime/dart_vm_initializer.cc(41)] Unhandled Exception: [firebase_auth/channel-error] Unable to establish connection on channel.
    E/flutter (12976): #0      FirebaseAuthUserHostApi.getIdToken (package:firebase_auth_platform_interface/src/pigeon/messages.pigeon.dart:1490:7)
    E/flutter (12976): <asynchronous suspension>
    E/flutter (12976): #1      MethodChannelUser.getIdTokenResult (package:firebase_auth_platform_interface/src/method_channel/method_channel_user.dart:57:20)
    E/flutter (12976): <asynchronous suspension>
    E/flutter (12976): #2      main (package:firebase_auth_example/main.dart:35:32)
    E/flutter (12976): <asynchronous suspension>
    E/flutter (12976): 
    D/TrafficStats(12976): tagSocket(142) with statsTag=0xffffffff, statsUid=-1
    D/FirebaseAuth(12976): Notifying id token listeners about user ( YoaNWphb46ZRW4OlIgCTJTQ0Btz1 ).
    D/AndroidRuntime(12976): Shutting down VM
    E/AndroidRuntime(12976): FATAL EXCEPTION: main
    E/AndroidRuntime(12976): Process: io.flutter.plugins.firebase.auth.example, PID: 12976
    E/AndroidRuntime(12976): java.lang.IllegalStateException: Reply already submitted
    E/AndroidRuntime(12976): 	at io.flutter.embedding.engine.dart.DartMessenger$Reply.reply(DartMessenger.java:435)
    E/AndroidRuntime(12976): 	at io.flutter.plugin.common.BasicMessageChannel$IncomingMessageHandler$1.reply(BasicMessageChannel.java:224)
    E/AndroidRuntime(12976): 	at io.flutter.plugins.firebase.auth.GeneratedAndroidFirebaseAuth$FirebaseAuthUserHostApi$2.success(GeneratedAndroidFirebaseAuth.java:3247)
    E/AndroidRuntime(12976): 	at io.flutter.plugins.firebase.auth.GeneratedAndroidFirebaseAuth$FirebaseAuthUserHostApi$2.success(GeneratedAndroidFirebaseAuth.java:3244)
    E/AndroidRuntime(12976): 	at io.flutter.plugins.firebase.auth.FlutterFirebaseAuthUser.lambda$getIdToken$1(FlutterFirebaseAuthUser.java:88)
    E/AndroidRuntime(12976): 	at io.flutter.plugins.firebase.auth.-$$Lambda$FlutterFirebaseAuthUser$s_nGNBimt6oXsrZ_C5rXNPPXkrs.onComplete(Unknown Source:2)
    E/AndroidRuntime(12976): 	at com.google.android.gms.tasks.zzi.run(com.google.android.gms:play-services-tasks@@18.0.2:1)
    E/AndroidRuntime(12976): 	at android.os.Handler.handleCallback(Handler.java:942)
    E/AndroidRuntime(12976): 	at android.os.Handler.dispatchMessage(Handler.java:99)
    E/AndroidRuntime(12976): 	at android.os.Looper.loopOnce(Looper.java:201)
    E/AndroidRuntime(12976): 	at android.os.Looper.loop(Looper.java:288)
    E/AndroidRuntime(12976): 	at android.app.ActivityThread.main(ActivityThread.java:7872)
    E/AndroidRuntime(12976): 	at java.lang.reflect.Method.invoke(Native Method)
    E/AndroidRuntime(12976): 	at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:548)
    E/AndroidRuntime(12976): 	at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:936)
    I/Process (12976): Sending signal. PID: 12976 SIG: 9
    Lost connection to device.
    
    
    app = await Firebase.initializeApp(
        options: DefaultFirebaseOptions.currentPlatform,
      );
    //  auth = FirebaseAuth.instanceFor(app: app);
    
      auth = FirebaseAuth.instance;
    
      final IdTokenResult? token = await auth.currentUser?.getIdTokenResult(true);
      print(token);
    
  3. added
    platform: androidIssues / PRs which are specifically for Android.
    type: crashA compile error or crash
    and removed
    Needs AttentionThis issue needs maintainer attention.
    triageIssue is currently being triaged.
    on Jul 17, 2023
  4. kdokhanx98 commented on Jul 17, 2023

    @kdokhanx98

    This issue is related to getIdTokenResult and getIdToken functions, please fix asap

  5. bhanuka96 commented on Jul 18, 2023

    @bhanuka96

    Temporary solution: I downgraded all plugins that require Dart 3 or a higher version and downgraded Flutter SDK. Now it's working fine.

    In pubscpec.yaml, ">=2.11.0 <3.0.0"
    in flutter SDK: 3.7.12

    Downgrade all firebase plugins:

    firebase_auth: 4.6.2
    firebase_auth: 4.6.2
    firebase_analytics: 10.4.2
    firebase_core: 2.13.1
    firebase_crashlytics: 3.3.2
    firebase_database: 10.2.2
    firebase_dynamic_links: 5.3.2
    firebase_messaging: 14.6.2
    firebase_storage: 11.2.2
  6. bhanuka96 commented on Jul 18, 2023

    @bhanuka96

    bhanuka96

    I checked out to my other branch and only downgraded the Firebase plugins without downloading the Flutter SDK. It is also working.

    current settings:

    sdk: ">=3.0.0 <4.0.0"

    Flutter SDK: 3.10.6

    plugins:

    firebase_auth: 4.6.2 // don't use ^
    firebase_auth: 4.6.2
    firebase_analytics: 10.4.2
    firebase_core: 2.13.1
    firebase_crashlytics: 3.3.2
    firebase_database: 10.2.2
    firebase_dynamic_links: 5.3.2
    firebase_messaging: 14.6.2
    firebase_storage: 11.2.2
  7. dgilperez commented on Jul 18, 2023

    @dgilperez

    @bhanuka96 do you really need to downgrade all Firebase packages, or just firebase_auth? And why 4.6.2 and not 4.6.3? Thanks :)

  8. bhanuka96 commented on Jul 18, 2023

    @bhanuka96

    @dgilperez I tried downgrading the auth plugin, but it didn't work. Then, I downgraded all the Firebase plugins. I didn't try other versions because I needed to know if other firebase plugin versions too. Ex: 6.2.3, supports different versions of Firebase core. It's boring to change version by version

  9. 9 remaining items

  10. russellwheatley commented on Jul 24, 2023

    @russellwheatley
    Member

    I have a fix, will get a release out once it is reviewed/merged.

  11. vytautas-pranskunas- commented on Jul 24, 2023

    @vytautas-pranskunas-

    @cmenkemeller there was a question for you in PR. PR is blocked :(

  12. vorachirag318 commented on Jul 25, 2023

    @vorachirag318

    @bhanuka96 I am using this package but still not issue resolved
    firebase_auth: 4.6.2
    firebase_analytics: 10.4.2
    firebase_core: 2.13.1

  13. sarankumar-ns commented on Jul 25, 2023

    @sarankumar-ns

    +1

  14. bhanuka96 commented on Jul 25, 2023

    @bhanuka96

    @bhanuka96 I am using this package but still not issue resolved firebase_auth: 4.6.2 firebase_analytics: 10.4.2 firebase_core: 2.13.1

    Try to flutter clean and delete pubspec.lock file and try again.

  15. bizz84 commented on Jul 25, 2023

    @bizz84
    Contributor

    @russellwheatley as part of your PR, please also check if getIdTokenResult works as intended.

  16. vorachirag318 commented on Jul 26, 2023

    @vorachirag318

    @bhanuka96 When Firebase auth token expired, the refresh time (FirebaseAuth.instance.currentUser?.getIdToken()) gets the app crashed and tries to flutter clean and pubspec.lock deleted.

    I am using this package
    firebase_auth: 4.6.2
    firebase_analytics: 10.4.2
    firebase_core: 2.13.1

  17. synkrama-aditya-bhandare commented on Jul 26, 2023

    @synkrama-aditya-bhandare
    await FirebaseAuth.instance.currentUser
              ?.getIdToken()
              .then(
                (token) => {
             
                  print("TOKEN-----$token"),
               
                },
              )
              .catchError(
                (error) => {
                  print("TOKEN ERROR-----" + error.message),
                },
              );
    

    I was getting the same error for the above method.
    If I dont pass parameter to ?.getIdToken()
    It is working for me and able to print the token as well.

    Im using these firebase version

      firebase_core: ^2.14.0
      firebase_auth: ^4.6.3
    
  18. sunstar21 commented on Jul 30, 2023

    @sunstar21

    @bhanuka96 I am using this package but still not issue resolved firebase_auth: 4.6.2 firebase_analytics: 10.4.2 firebase_core: 2.13.1

    4.6.3 works - tried it, after like 100 different things, literally changing the version by 1 worked

  19. bhanuka96 commented on Jul 30, 2023

    @bhanuka96

    @sunstar21 Just update to the latest version, they fixed the issue in it

  20. FetFrumos commented on Aug 7, 2023

    @FetFrumos

    I have this issue with firebase_auth ^4.7.2(last version).

    It is helped for me

    firebase_auth: 4.6.3 firebase_auth_platform_interface: 6.15.3

  21. vorachirag318 commented on Aug 7, 2023

    @vorachirag318

    @FetFrumos please delete pubspace.lock file and then again pub get then test it

  22. locked and limited conversation to collaborators on Aug 25, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Labels

platform: androidIssues / PRs which are specifically for Android.plugin: authresolution: fixedA fix has been merged or is pending merge from a PR.type: bugSomething isn't workingtype: crashA compile error or crash

Type

No type

Projects

No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions