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

Nobody has claimed this yet.

Assessment

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

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.

Description

needs-triage
[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('<listening location 1>').listen(exampleFunc)
listener2=db.reference('<listening location 2>').listen(exampleFunc)
Dominant language
Python
Stars
1.2k
Forks
359
Avg merge
5d 6m
Merged PRs (30d)
2

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

More from firebase/firebase-admin-python

All issues in firebase/firebase-admin-python

Similar issues

More Python issues

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.