firebase / firebase/firebase-admin-python

ECONNRESET connecting to Firebase auth emulator from functions emulator with grpc imported

Open
#945 1 comment 1 reaction 0 assignees View on GitHub
Dominant language
Python
Stars
1.2k
Forks
359
Avg merge
5d 6m
Merged PRs (30d)
2

Description

### [READ] Step 1: Are you in the right place?

I’m not sure that the root cause of this issue is, but this repo seems like the most likely culprit. Other possibilities: gRPC, firebase-tools, firebase-functions.

### [REQUIRED] Step 2: Describe your environment

* Operating System version: macOS 15.7.4 (24G517)
* Firebase SDK version: 7.4.0
* Firebase Product: auth
* Python version: 3.11.15
* Pip version: uv 0.11.6

### [REQUIRED] Step 3: Describe the problem

#### Steps to reproduce:

[danielparks/firebase-emulator-auth-hang-up](https://github.com/danielparks/firebase-emulator-auth-hang-up) is minimal test repo with more exhaustive details including a workaround.

Within a Python cloud function that has `grpc` or `firebase_admin.firestore` imported, call an `auth` method, e.g. `auth.create_user(...)`, or make a GET request to the auth endpoint, e.g. `requests.get("http://127.0.0.1:9099/", timeout=1)`.

The function will fail with `ECONNRESET` (“Error: socket hang up”).

#### Relevant Code:

Simplified example (see [the repo above](https://github.com/danielparks/firebase-emulator-auth-hang-up) for a functional example):

```python
from firebase_admin import initialize_app
from firebase_functions import https_fn
import requests

import grpc
# or, import firebase_admin.firestore

initialize_app()

@https_fn.on_call()
def connect(req):
# Make a simple GET request to the auth emulator endpoint:
return repr(requests.get("http://127.0.0.1:9099/", timeout=1))
```

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.