-
Notifications
You must be signed in to change notification settings - Fork 343
Open
Labels
Description
[REQUIRED] Step 2: Describe your environment
- Operating System version: Linux 6.12.41
- Firebase SDK version: 7.1.0
- Firebase Product: cloud tasks, cloud functions
- Python version: 3.13.5
- Pip version: 25.2
[REQUIRED] Step 3: Describe the problem
When using Local Emulator Suite and trying to enqueue any cloud task, getting exception:
> [2025-10-14 10:06:39,431] ERROR in app: Exception on / [POST]
> Traceback (most recent call last):
> File "/home/ikor/Work/Firebase/functions/venv/lib/python3.13/site-packages/flask/app.py", line 1511, in wsgi_app
> response = self.full_dispatch_request()
> File "/home/ikor/Work/Firebase/functions/venv/lib/python3.13/site-packages/flask/app.py", line 919, in full_dispatch_request
> rv = self.handle_user_exception(e)
> File "/home/ikor/Work/Firebase/functions/venv/lib/python3.13/site-packages/flask/app.py", line 917, in full_dispatch_request
> rv = self.dispatch_request()
> File "/home/ikor/Work/Firebase/functions/venv/lib/python3.13/site-packages/flask/app.py", line 902, in dispatch_request
> return self.ensure_sync(self.view_functions[rule.endpoint])(**view_args) # type: ignore[no-any-return]
> ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^
> File "/home/ikor/Work/Firebase/functions/venv/lib/python3.13/site-packages/functions_framework/execution_id.py", line 157, in wrapper
> result = view_function(*args, **kwargs)
> File "/home/ikor/Work/Firebase/functions/venv/lib/python3.13/site-packages/functions_framework/__init__.py", line 142, in view_func
> return function(request._get_current_object())
> File "/home/ikor/Work/Firebase/functions/venv/lib/python3.13/site-packages/firebase_functions/https_fn.py", line 439, in on_request_wrapped
> return func(request)
> File "/home/ikor/Work/Firebase/functions/functions/email_auth.py", line 35, in sign_in_with_email
> send_confirmation_email(email, verification_code = code)
> ~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> File "/home/ikor/Work/Firebase/functions/functions/email.py", line 23, in send_confirmation_email
> queue.enqueue(dict(data = dict(
> ~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^
> to = to,
> ^^^^^^^^
> ...<3 lines>...
> ),
> ^^
> )))
> ^^^
> File "/home/ikor/Work/Firebase/functions/venv/lib/python3.13/site-packages/firebase_admin/functions.py", line 167, in enqueue
> task_payload = self._update_task_payload(task, self._resource, self._extension_id)
> File "/home/ikor/Work/Firebase/functions/venv/lib/python3.13/site-packages/firebase_admin/functions.py", line 300, in _update_task_payload
> {'service_account_email': self._credential.service_account_email}
> ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> AttributeError: 'Credentials' object has no attribute 'service_account_email'
Steps to reproduce:
- Install
firebase-tools ^14.17.0
via npm. - Run
npx firebase login
and complete login process. - Run
npx firebase init:emulators
and selectauth, functions, firestore, pubsub, tasks, extensions
. - Run
npx firebase emulators:start
. - Trigger HTTP function via curl which calls
send_confirmation_email
from the code below.
Relevant Code:
functions/main.py
:
from firebase_admin import initialize_app
initialize_app()
from functions.email import sendemail
from functions.email_auth import sign_in_with_email, confirm_email
functions/functions/email.py
:
from firebase_functions.tasks_fn import on_task_dispatched
from firebase_admin.functions import task_queue
@on_task_dispatched()
def sendemail(request):
...
def send_confirmation_email(to, *, verification_code):
queue = task_queue(sendemail.__name__)
queue.enqueue(dict(data = dict(
to = to,
template_data = dict(
VERIFICATION_CODE = verification_code,
),
)))