Uh oh!
There was an error while loading. Please reload this page.
fix(advance-deploy-env): skip Status update if 'Done' can't be resolved - #13
Merged
saadqbal merged 5 commits intoApr 29, 2026
Merged
Conversation
chore: promote develop → main (advance-deploy-env workflow)
chore: promote issue templates + customer-bump to main
chore: promote set-pr-status reusable workflow to main
chore: promote advance-deploy-env fix to main
The reusable workflow already validates DEPLOY_OPT before using it but
not STATUS_FIELD or DONE_OPT. When the Status field lookup returns
empty (e.g. a project where the "Done" option doesn't exist or has
been renamed), the second mutation receives an empty $o and crashes
with "Variable $o of type String! was provided invalid value" — which
masks the fact that the primary Deploy environment update succeeded.
Two changes:
- After the field lookups, validate STATUS_FIELD and DONE_OPT only
when env=prod (since that's when Status is touched). On miss, log
a workflow ::warning:: and set SKIP_STATUS=1.
- Gate the per-PR Status mutation on SKIP_STATUS != 1.
Behavior changes:
- Failure cases that used to abort the workflow now warn and skip
Status while still completing the Deploy environment updates for
every PR in the push.
- Non-prod pushes are unchanged (no Status mutation at all).
- The error from a missing "Done" option is now actionable
("could not resolve 'Done' option in Status field of project
#<num>") instead of a cryptic GraphQL error.
Triggered by: tracebloc/client run #24995200600 (PR #64), where this
exact failure mode blocked the workflow even though Deploy env = prod
was applied successfully.
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>saadqbal
approved these changes
Apr 29, 2026
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 freeto 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.
Summary
Hardens
advance-deploy-env.ymlagainst missing Status field options.The reusable workflow already validates
DEPLOY_OPTbefore using it, but notSTATUS_FIELDorDONE_OPT. When the lookup for "Done" returns nothing (option renamed, removed, or the field's name drifted), the GraphQL mutation receives an empty$oand the workflow crashes with:This masks the fact that the primary
Deploy environmentupdate succeeded for every PR in the push. The team sees a red workflow and reasonably assumes the deploy didn't tag the kanban — when it actually did.What changes
STATUS_FIELDandDONE_OPT(only whenenv=prod, since that's when Status gets touched). On miss, log a workflow::warning::and setSKIP_STATUS=1.${SKIP_STATUS:-0} != "1".Behavior changes
Symmetry note
This matches the existing
DEPLOY_OPTvalidation pattern — same shape, except graceful skip instead of abort because Status is a nice-to-have and Deploy env is the primary purpose of the workflow.Triggered by
tracebloc/client run #24995200600 on PR #64 hit this exact failure:
Deploy env = prodsucceeded, then the Status mutation failed with the empty-$oerror.Test plan
tracebloc/clientworkflow (or wait for the next push tomain) — confirm it completes green even if "Done" lookup returns empty.Generated with Claude Code