firebase / firebase/firebase-android-sdk

[firebase-auth] Blocking function timeout returns UNKNOWN error code (code 47) instead of a dedicated timeout code

Open
#7,862 7 comments 0 reactions 0 assignees View on GitHub
api: auth needs-attention
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

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.