firebase / firebase/firebase-android-sdk
[firebase-auth] Blocking function timeout returns UNKNOWN error code (code 47) instead of a dedicated timeout code
- Dominant language
- Java
- Stars
- 2.6k
- Forks
- 710
- Avg merge
- 2d 23h
- Merged PRs (30d)
- 34
Description
## Description
When a Firebase Auth [blocking function](https://firebase.google.com/docs/auth/extend-with-blocking-functions) (e.g. `beforeUserCreated`) times out, the Android SDK throws an error with code `UNKNOWN` (error code 47) instead of a dedicated, meaningful error code.
This makes it impossible for developers to programmatically distinguish between a genuine internal error and a blocking function timeout, leading to hours of debugging.
## Steps to Reproduce
1. Set up a `beforeUserCreated` blocking function that takes longer than the allowed timeout.
2. Call `createUserWithEmailAndPassword` (or any auth method guarded by the blocking function) from an Android app.
3. Observe the exception: it surfaces as `UNKNOWN` / error code 47 with a generic message like "An internal error has occurred."
## Expected Behavior
A dedicated error code (e.g. `BLOCKING_FUNCTION_TIMEOUT` or similar) should be returned so that developers can handle this case explicitly.
## Actual Behavior
The error is surfaced as `UNKNOWN` (error code 47):
```
Error code: 47
Message: An internal error has occurred.
```
From Flutter/FlutterFire (where this was originally reported):
```
[firebase_auth/unknown] An internal error has occurred. [ Error code:47
FirebaseAuthException
Firebase Auth error code: unknown
Firebase Auth error message: An internal error has occurred. [ Error code:47
```
## Context
This was reported on the FlutterFire repository: https://github.com/firebase/flutterfire/issues/18022
The FlutterFire maintainer confirmed that error codes and messages are passed through as-is from the native Android SDK, and recommended opening this issue upstream to request a dedicated error code for blocking function timeouts.
A dedicated error code would benefit all Firebase Auth consumers on Android (native and cross-platform via FlutterFire, React Native Firebase, etc.).
## Platform
- Android (Firebase Auth Android SDK)
- Also surfaced via FlutterFire (Flutter wrapper)
Contributor guide
Assessment
This issue has not been assessed yet.