-
Notifications
You must be signed in to change notification settings - Fork 970
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
Large, below-quota deployments (<80 functions) failing with message "Build failed with status: EXPIRED..." #5967
Comments
Hello, I just wanted to check in on this and see if any devs have any idea what may be causing it? It is currently blocking us from having a consistent CI/CD pipeline, since even manually breaking up and batching the deployments isn't a valid workaround. Thank you! |
Same issue there.... have 20-30 functions and always have deployment error on random functions.... same error |
Saw #5969 and thought it might be related to this, Line 368 of extensionsApi.ts states masterTimeout: 600000 (and several other operations do, too). I tried changing this locally for my firebase-tools, but i'm still getting the same error, Expired..., when trying to deploy ~40 gen2 functions. |
Same issue. Limited (< 10) number of Python 2nd Gen Firebase functions. Very frustrating and limiting the ability to productionize. I think it happened when I added a 5th or 6th function. My functions have a large number of dependencies so not sure if that affects the issue. I haven't investigated the size in detail but am actively working to minimize the size. Additionally, I am using both JS and Python functions with the I can also confirm that all of the functions are updated on each deployment instead of only those that have changes. This seems to be the current behavior of using the Edit: No change after migration to using no |
Also been dealing with this issue. Ever since I updated my 30 or so cloud functions to v2, I've been noticing errors when deploying some functions (the problematic ones change every time): Build failed with status: EXPIRED and message: An unexpected error occurred. Refer to build logs: [redacted]. For more details see the logs at [redacted].
✔ functions[payment-deleteOldPayments(us-central1)] Successful update operation.
✔ functions[customer-deleteJobsOnCustomerDelete(us-central1)] Successful update operation.
✔ functions[hourEntry-sendHourEntryReminders(us-central1)] Successful update operation.
✔ functions[calendar-addEvent(us-central1)] Successful update operation.
Functions deploy had errors with the following functions:
calendar-getEvents(us-central1)
job-deletePaymentsOnJobDelete(us-central1)
payment-deletePaymentCheckPhoto(us-central1)
subcontractor-onSubcontractorDelete(us-central1)
user-deleteTasksOnUserDelete(us-central1)
Function URL (user-registerDeviceToken(us-central1)): [redacted]
Function URL (user-createNewUser(us-central1)): [redacted]
Function URL (calendar-getEventsToday(us-central1)): [redacted]
Function URL (calendar-addEvent(us-central1)): [redacted]
Function URL (calendar-updateEvent(us-central1)): [redacted]
Function URL (calendar-deleteEvent(us-central1)): [redacted]
i functions: cleaning up build files...
Error: There was an error deploying functions:
- Error Failed to update function calendar-getEvents in region us-central1
- Error Failed to update function payment-deletePaymentCheckPhoto in region us-central1
- Error Failed to update function user-deleteTasksOnUserDelete in region us-central1
- Error Failed to update function subcontractor-onSubcontractorDelete in region us-central1
- Error Failed to update function job-deletePaymentsOnJobDelete in region us-central1
Warning: run-commands command "firebase deploy --config firebase.json" exited with non-zero status code Even worse, when these functions fail to deploy, subsequent deploys tell me that there are "no changes detected". There definitely are since those changes never made it to my function to begin with: === Deploying to 'crown-finish-development'...
i deploying storage, firestore, functions, hosting
i firebase.storage: checking apps/back-end/storage.rules for compilation errors...
✔ firebase.storage: rules file apps/back-end/storage.rules compiled successfully
i firestore: reading indexes from apps/back-end/firestore.indexes.json...
i cloud.firestore: checking apps/back-end/firestore.rules for compilation errors...
✔ cloud.firestore: rules file apps/back-end/firestore.rules compiled successfully
i functions: preparing codebase default for deployment
i functions: ensuring required API cloudfunctions.googleapis.com is enabled...
i functions: ensuring required API cloudbuild.googleapis.com is enabled...
i artifactregistry: ensuring required API artifactregistry.googleapis.com is enabled...
✔ functions: required API cloudbuild.googleapis.com is enabled
✔ functions: required API cloudfunctions.googleapis.com is enabled
✔ artifactregistry: required API artifactregistry.googleapis.com is enabled
i functions: Loading and analyzing source code for codebase default to determine what to deploy
Serving at port 8191
shutdown requested via /__/quitquitquit
i functions: preparing dist/apps/back-end directory for uploading...
i functions: packaged /Users/tylerhendrickson/Developer/soluna-studios/crown-finish/dist/apps/back-end (91.11 KB) for uploading
i functions: ensuring required API cloudscheduler.googleapis.com is enabled...
✔ functions: required API cloudscheduler.googleapis.com is enabled
i functions: ensuring required API run.googleapis.com is enabled...
i functions: ensuring required API eventarc.googleapis.com is enabled...
i functions: ensuring required API pubsub.googleapis.com is enabled...
i functions: ensuring required API storage.googleapis.com is enabled...
✔ functions: required API storage.googleapis.com is enabled
✔ functions: required API run.googleapis.com is enabled
✔ functions: required API pubsub.googleapis.com is enabled
✔ functions: required API eventarc.googleapis.com is enabled
i functions: generating the service identity for pubsub.googleapis.com...
i functions: generating the service identity for eventarc.googleapis.com...
i storage: latest version of apps/back-end/storage.rules already up to date, skipping upload...
i firestore: deploying indexes...
✔ firestore: deployed indexes in apps/back-end/firestore.indexes.json successfully for (default) database
i firestore: latest version of apps/back-end/firestore.rules already up to date, skipping upload...
i hosting[crown-finish-development]: beginning deploy...
i hosting[crown-finish-development]: found 50 files in dist/apps/web
i hosting: upload complete
✔ hosting[crown-finish-development]: file upload complete
✔ storage: released rules apps/back-end/storage.rules to firebase.storage
✔ firestore: released rules apps/back-end/firestore.rules to cloud.firestore
i functions: Skipping the deploy of unchanged functions with experimental support for skipdeployingnoopfunctions
✔ functions[user-deleteTasksOnUserDelete(us-central1)] Skipped (No changes detected)
✔ functions[user-deleteHourEntriesOnUserDelete(us-central1)] Skipped (No changes detected)
✔ functions[user-registerDeviceToken(us-central1)] Skipped (No changes detected)
✔ functions[user-createNewUser(us-central1)] Skipped (No changes detected)
✔ functions[job-deletePaymentsOnJobDelete(us-central1)] Skipped (No changes detected)
✔ functions[job-deleteReceiptsOnJobDelete(us-central1)] Skipped (No changes detected)
✔ functions[job-deleteJobPhotosOnJobDelete(us-central1)] Skipped (No changes detected)
✔ functions[job-deleteHourEntriesOnJobDelete(us-central1)] Skipped (No changes detected)
✔ functions[job-deleteTasksOnJobDelete(us-central1)] Skipped (No changes detected)
✔ functions[hourEntry-sendHourEntryReminders(us-central1)] Skipped (No changes detected)
✔ functions[task-sendNotificationOnAssignment(us-central1)] Skipped (No changes detected)
✔ functions[task-sendTaskReminders(us-central1)] Skipped (No changes detected)
✔ functions[payment-deletePaymentCheckPhoto(us-central1)] Skipped (No changes detected)
✔ functions[payment-deleteOldPayments(us-central1)] Skipped (No changes detected)
✔ functions[receipt-deleteReceipt(us-central1)] Skipped (No changes detected)
✔ functions[receipt-deleteOldReceipts(us-central1)] Skipped (No changes detected)
✔ functions[estimate-deleteJobPhotosOnEstimateDelete(us-central1)] Skipped (No changes detected)
✔ functions[estimate-sendEstimateReminders(us-central1)] Skipped (No changes detected)
✔ functions[jobPhoto-deleteJobPhoto(us-central1)] Skipped (No changes detected)
✔ functions[jobPhoto-deleteOldJobPhotos(us-central1)] Skipped (No changes detected)
✔ functions[customer-updateJobsOnCustomerRename(us-central1)] Skipped (No changes detected)
✔ functions[customer-updateEstimatesOnCustomerRename(us-central1)] Skipped (No changes detected)
✔ functions[customer-deleteJobsOnCustomerDelete(us-central1)] Skipped (No changes detected)
✔ functions[customer-deleteEstimatesOnCustomerDelete(us-central1)] Skipped (No changes detected)
✔ functions[subcontractor-onSubcontractorDelete(us-central1)] Skipped (No changes detected)
✔ functions[calendar-getEvents(us-central1)] Skipped (No changes detected)
✔ functions[calendar-getEventsToday(us-central1)] Skipped (No changes detected)
✔ functions[calendar-addEvent(us-central1)] Skipped (No changes detected)
✔ functions[calendar-updateEvent(us-central1)] Skipped (No changes detected)
✔ functions[calendar-deleteEvent(us-central1)] Skipped (No changes detected)
✔ functions[expiration-recordCreationTime(us-central1)] Skipped (No changes detected)
i functions: cleaning up build files...
i hosting[crown-finish-development]: finalizing version...
✔ hosting[crown-finish-development]: version finalized
i hosting[crown-finish-development]: releasing new version...
✔ hosting[crown-finish-development]: release complete
✔ Deploy complete! Now I can't trust my CI/CD to deploy reliably. Some changes make it while others don't until I deploy next time with new changes. This is a huge problem. Can we please have some movement on this? |
Any updates on this? Any estimations? 😳 |
I just tested with firebase tools 12.4.7 (I'm learning and already read all the documentation) I have a project with a typescript "default" codebase, and a javascript "js" codebase, each one with 3 functions. Using only 1 codebase will thus trigger an update of all functions on the project after any change. If the change is on 1 of 3 functions, and deployed with I read that firebase uploads and zips all of the codebase code for every function, so it seems that it compares the new zipped code with the uploaded code. |
We see this a lot too. It's very frustrating. |
Another bump for this, I hadn't realized that this was a problem until @hendrickson-tyler mentioned it
|
Huge problem for me as well! |
This seems to be happening less frequently for me the last couple of days, is anyone else seeing this? Did something change? |
The frequency is dropping for me as well. |
I will say with the newer releases (in the past ~3 months) have seemed much smoother. Our CircleCI deployment success rate for ~60 functions is now 93%, and at the time of posting this issue it was below 50%. |
Any news on this? @Berlioz @colerogers sorry to tag you 🥺 |
@gillycheesesteak We're still working on ironing out some minor bugs with it, but #6376 should lead to some major improvements to this experience! |
firebase-tools >=v12.6.1 includes the enabling of single builds for v2 functions, which should drastically improve deployment speed / reliability on large deployments. The feature should ameliorate the build expiring problem mentioned in this issue by reusing builds from the same deploy group. Will go ahead and close this thread for now, but please open a new issue if you encounter any other errors while deploying functions using the latest versions of the CLI tool. |
I'm experiencing this issue whenever all my functions have changed, but redeploying once seems to fix the issue since it only updates the ones that failed. |
I am still consistently experiencing this issue. With almost every deploy about 3-6 of my functions randomly fail to deploy with status "EXPIRED." Really need this to be fixed to be able to have a good time using Firebase Functions. This started for me in the past couple of weeks. Before that I was not having any problems. |
@blidd-google @joehan I am still consistently experiencing this issue deploying Cloud Functions V2 via Firebase. I'm using version 13.3.0 of the firebase-tools library, 4.4.1 of the firebase-functions library, and 11.11.1 of the firebase-admin library. |
Any news on this? Still an issue for me, I have 120 functions, and 50% failure rate, every single deployment. PLEASE ASSIST @Berlioz @colerogers |
This issue is still a nightmare when deploying on production. |
still happening guys |
I'm also experiencing this error frequently in the last few days |
I have the same problem |
I think this issue was reintroduced in 13.8.1. After downgrading to 13.8.0, errors were gone. |
Yep, can confirm. I'm seeing this issue again on Downgrading to v13.8.0 as @SherpaMiguel suggested did seem to work for me. Might want to pin to that version until this issue is fixed again... |
Since v13.8.1, the optimizations have been disabled and made available as experiment: firebase experiments:enable functionsv2deployoptimizations |
@arnoutvandervorst thanks it works |
Sorry for the inconvience everyone. In 13.8.1, we disabled the feature that fixed this issue to mitigate a backend bug that affected some regions. We're planning on reenabling it soon once we have confirmation that the backend bug is fixed. In the interim, if you're having this issue and needed to downgrade, instead try enabling the experiment they are behind:
|
Worked for me thanks |
Fix worked for us as well. @joehan How will we (users) be alerted about a permanent fix? I'm injecting the |
Seeing this all day today, have just ran the suggested fix for While I'm here, I'd also like to say it's a nightmare using the new V2 functions sometimes they just seem to 'corrupt' and I have to manually delete all the functions via the CLI, then likely have to reinstate the IAM permissions in the cloud console for every single function, then sometimes the V2 functions don't deploy properly and tell me I'm changing to the new format upon first deploys, likely due to me mixing V1 and V2 functions (because I have to for V1 |
Man, this is still happening to me. Tried the |
It started happening again in 13.10.2. Now even downgrading to 13.8.0 fails. Looks like functionsv2deployoptimizations is disabled behind the scenes. |
I'm also now seeing this even after running |
@trevor-rex @blidd-google Can we reopen this issue as it is still a problem? |
@Berlioz @colerogers Definitely an issue. Has gotten worse, deployments are consistently failing. Please assist in reopening issue |
I'm unable to re-open the issue but hopefully someone from Google does. I have never upgraded from |
Hi, before weekend it happened just from time to time. Now it happens all the time for all our projects. No solution described here works for us. We are blocked... |
It worked normally last week but now the functions are failing every deployment. I've tried rollback to the previous version but it still fails. |
It may be resolved the quickest if someone opens a new Github issue, as re-opening this ticket doesn't seem to be urgent for the repo owners. I am unable to do this myself as I don't have any error logs to provide to the Google team since I'm not encountering the issue. |
New issue opened #7268 |
I am getting the same error but I created a script to deploy individual functions one by one but there is no efficiency... Deployed 27 functions successfully
|
[REQUIRED] Environment info
firebase-tools: 12.3.1
Platform: macOS Monterey
[REQUIRED] Test case
Run
firebase deploy --only functions
with a codebase containing 61 2nd Cloud Functions and 1 1st gen Cloud Function.[REQUIRED] Steps to reproduce
Same as test case
[REQUIRED] Expected behavior
I would expect this deployment to go through since it is below the deployment quota of 80 functions per minute.
[REQUIRED] Actual behavior
I saw that
firebase-tools
had a recent update to improve retry behavior for large deployments so I thought I would try it. I am still running into issues deploying under 80 (quota) functions, however. It seems like the deployment times out before all the function deployments go through.Some of the functions fail to deploy with build with the following error:
The build logs are empty and don't contain any useful information other than the build expiring.
This happens for about 20 of the 62 functions. Here is a truncated output of the full deploy:
This is a small portion of the --debug log that printed for each failed function, but most of it did not seem useful:
The text was updated successfully, but these errors were encountered: