Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Error in firebase_functions/private/util.py processing event time attribute #136

Open
ekalosak opened this issue Sep 16, 2023 · 14 comments
Open
Labels
bug Something isn't working waiting for customer response Issue is on hold awaiting more information from OP

Comments

@ekalosak
Copy link
Contributor

ekalosak commented Sep 16, 2023

After updating firebase-tools, using the functions emulator, any time an @firestore_fn-decorated function is executed, I get this error:

...
>    File "/.../venv/lib/python3.11/site-packages/firebase_functions/firestore_fn.py", line 115, in _firestore_endpoint_handler
>      is_nanoseconds = _util.is_precision_timestamp(time)
>                       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
>    File "/.../venv/lib/python3.11/site-packages/firebase_functions/private/util.py", line 333, in is_precision_timestamp
>      _, s_fraction = time.split(".")
>      ^^^^^^^^^^^^^
>  ValueError: not enough values to unpack (expected 2, got 1)

The relevant code includes this block from firebase_fn.py and this block from private/util.py.

After upgrading to the latest firebase tools npm install -g firebase-tools to v12.5.4, the CloudEvent event's time attribute has this iso format: 2023-09-16T13:32:06Z extracted by adding a print() call to the firebase_functions' site-package source.

So, that unprotected time.split('.') call isn't accounting for the ostensible change to the time attribute's format.


I'm using Python 3.11.4 on macOS 12.6 with firebase-functions v0.1.1 (latest).

@ekalosak
Copy link
Contributor Author

ekalosak commented Sep 16, 2023

It's worth noting that downgrading firebase-tools from the latest v12.5.4 to the previous v12.5.3 fixes the issue.

tl;dr fix this bug by running: npm install -g [email protected]

Firebase staff - please consider adding an integration test that covers @firestore_fn-triggered functions to the firebase-tools CI.

@mitch-36
Copy link

mitch-36 commented Sep 24, 2023

Thanks for sharing.
npm install -g [email protected]
Fixed the issue for me too.

@joaqo
Copy link

joaqo commented Sep 25, 2023

I have the same issue, but running npm install -g [email protected] didn't fix it for me.

I followed the official tutorial to the letter and encountered this issue, so it seems to be quite a big oversight from the firebase team.

EDIT: I had installed firebase tools from the bash script, had to uninstall it, install this specific npm version, and the issue is now fixed. Official tutorial is still broken though.

@brianellin
Copy link

Same issue for me using the latest firebase.tools. Using 12.5.3 via npm for now until the issue is resolved.

Also, I'd recommend some better docs on "installing" a specific version binary from the firebase.tools website.

@exaby73
Copy link
Contributor

exaby73 commented Oct 9, 2023

Snce this issue has been fixed, I'll close this issue. Please comment if you disagree with my decision

@exaby73 exaby73 closed this as completed Oct 9, 2023
@jackall3n
Copy link

Snce this issue has been fixed, I'll close this issue. Please comment if you disagree with my decision

This is still an issue in the latest version, this issue shouldn't be closed.

@joaqo
Copy link

joaqo commented Oct 10, 2023

Yeah, this is the 2nd recent issue @exaby73 has closed that hasn't actually been fixed.

@exaby73
Copy link
Contributor

exaby73 commented Oct 11, 2023

@jackall3n @joaqo Sorry about this. I realise that the workaround was downgrading the firebase_tools version. Correct me if I am wrong. I'll reopen this issue and investigate further

@exaby73 exaby73 reopened this Oct 11, 2023
@antopolskiy
Copy link

antopolskiy commented Oct 12, 2023

+1 this issue still happens and if not for this thread it would have been very difficult for me to resolve. I spent ~1 hour fruitlessly playing around with versions of various components before finding this. npm install -g [email protected] works.

@zsais
Copy link

zsais commented Oct 18, 2023

+1 this issue still exists

@exaby73
Copy link
Contributor

exaby73 commented Oct 19, 2023

@zsais @joaqo Could you check this issue against the main branch by change the dependency in your requirements.txt?

Change firebase_functions=<version> to git+https://github.com/firebase/firebase-functions-python.git@main#egg=firebase-functions

@exaby73
Copy link
Contributor

exaby73 commented Jan 15, 2024

Could you please check with the latest version 0.2.0 and confirm if this issue is fixed on your side? There was a PR that was merged but not released earlier which may have fixed this issue

@exaby73 exaby73 added the waiting for customer response Issue is on hold awaiting more information from OP label Jan 15, 2024
@antopolskiy
Copy link

I just tried it with firebase-tools v13.3.0 and it still fails.

@exaby73
Copy link
Contributor

exaby73 commented Mar 8, 2024

Hey @antopolskiy if you can still reproduce it, could you provide me with your stack trace?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
bug Something isn't working waiting for customer response Issue is on hold awaiting more information from OP
Projects
None yet
Development

No branches or pull requests

8 participants