firebase / firebase/firebase-admin-python

Python Firebase Admin SDK Listener sometimes throws Bad Gateway errors after DB is updated

Open
#664 1 comment 0 reactions 0 assignees View on GitHub
needs-triage
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?
Yes

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

* Operating System version: cos-stable-101-17162-40-5
* Firebase SDK version: latest?
* Firebase Product: realtime database, admin SDK
* Python version: 3.8
* Pip version: latest?

### [REQUIRED] Step 3: Describe the problem
I have a database with customers data in it. When a new customer is added, a Firebase function triggers and updates '' to [user.uid]: to represent credits in my system. I have a google cloud VM that has an admin sdk database listener setup. Every month or so, after a new customer signs up, all of my listeners will randomly throw an error. The error I am seeing is:
**requests.exceptions.HTTPError: 502 Server Error: Bad Gateway for url: https://-default-rtdb.firebaseio.com/.json**

I am using the realtime listener described in this stack overflow post top answer:
https://stackoverflow.com/questions/49863708/python-firebase-realtime-listener

#### Steps to reproduce:
Hard to reproduce, but I can also provide my project ID and exact times for the issue so that the Firebase team can look into server-side logs to see what the issue might be.

#### Relevant Code:
```
from firebase_admin import db
def exampleFunc(event):
try:
print(event)
except Exception as e:
return

#in startup function
listener1=db.reference('').listen(exampleFunc)
listener2=db.reference('').listen(exampleFunc)
```

Contributor guide

Open the contributing guide

Research direction

Start with the Python Realtime Database listener path used by db.reference(...).listen(exampleFunc) and the reported requests.exceptions.HTTPError 502 response after database updates. Review the listener setup and any available project IDs and timestamps against server-side logs. Done means identifying a reproducible cause or documenting how the intermittent failure should be handled.

Written by the indexing model from the issue text.

Assessment

Tech stack
python
Domain
backend, databases
Issue type
Bug
Difficulty
4/5
Estimated time
3-5 days
Activity status
Stale
Clarity
Needs clarification
Newbie friendliness
25/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.