fix(graphql): add deleted_classes:[UserDetails] migration to unblock deploys#387
Merged
Merged
Conversation
#384 removed the UserDetails Durable Object from every server but only added the delete-class migration to the two servers that own the class (workers-observability, workers-builds). graphql's deployed worker still depends on UserDetails, so `wrangler deploy` rejected the new version with code 10064 and aborted the staging and production deploys; it also blocked workers-observability from applying its own deleted_classes migration (code 10061). Adding the delete-class migration lets graphql deploy and releases the binding. Validated on staging: graphql + observability deploy cleanly and the staging UserDetails namespace is removed.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Problem
The staging and production deploys of #384 (which removed the
UserDetailsDurable Object) failed, leaving most servers undeployed:code: 10064— "New version of script does not export class 'UserDetails' which is depended on by existing Durable Objects … use a delete-class migration."code: 10061— "Cannot apply --delete-class migration to class 'UserDetails' without also removing the binding that references it."Because
turbo deployaborts on first failure, graphql's failure halted the whole release.Root cause
#384 removed the
UserDetailsDO and its bindings from every server, and correctly added adeleted_classes: ["UserDetails"]migration to the two servers that own the class (workers-observability,workers-builds). It did not add one to graphql, whose already-deployed worker still depends onUserDetails— sowrangler deployrefuses the new version (10064). graphql is also the last consumer still holding a cross-script binding toobservability'sUserDetails, which is what blocked observability's own delete-class migration (10061).Fix
Add the delete-class migration to graphql:
graphql owns no actual
UserDetailsnamespace (onlyobservabilitydoes), so this just clears graphql's dependency on the class and releases the binding that was blocking observability.Validation
Deployed the full set to staging in order (consumers first, owners last):
accounts_listtool gone).UserDetailsDurable Object namespace is deleted; only the production one remains (pending the prod redeploy).Follow-up / deploy note
Production
graphql+workers-observabilityare still on the pre-#384 build (their failed deploys left the old version running — no downtime,UserDetailsdata intact). After this merges, redeploy them to production in order (graphql → observability) so observability's delete-class migration succeeds.