Skip to content

fix(deploy): wait on the stack's own status, not a per-operation waiter - #80

Merged
jfrench9 merged 1 commit into
mainfrom
bugfix/deploy-settle-wait
Sep 9, 2026
Merged

fix(deploy): wait on the stack's own status, not a per-operation waiter#80
jfrench9 merged 1 commit into
mainfrom
bugfix/deploy-settle-wait

Conversation

@jfrench9

@jfrench9 jfrench9 commented Sep 9, 2026

Copy link
Copy Markdown
Member

Summary

The deploy's "Wait for stack to settle" step did not wait on a stack update. It called the create waiter, then the update waiter, then || true; on an update the create waiter returns immediately, so the sync and invalidation ran while CloudFront was still applying the change. Seen on the 2026-09-09 alias deploy (run 34379035054), harmless that time, wrong in general.

Changes

  • .github/workflows/deploy.yml — the step polls describe-stacks every 30 s until the status leaves every *_IN_PROGRESS state: CREATE_COMPLETE / UPDATE_COMPLETE pass, any rollback or failed state fails the job and prints the failed resources, and a 28-minute ceiling fails inside the job's 30-minute timeout. A stack with nothing to update is already *_COMPLETE and passes on the first poll.

Key Handling

No change. Workflow only; nothing in the app, no outbound call from the page, file mode untouched.

Testing

npm run format:check clean on a fresh clone after npm ci. The step is exercised by the next deploy; a status poll has no local harness.

🤖 Generated with Claude Code

https://claude.ai/code/session_01Wrb85mvgMjYTHHSkKWFre4

The settle step used the create waiter, then the update waiter, then
`|| true`. On a stack update the create waiter returns at once, so the
S3 sync and the invalidation ran while CloudFront was still applying the
new configuration (2026-09-09, the alias deploy). Poll describe-stacks
until the stack leaves every *_IN_PROGRESS state; fail on a rollback with
the failed resources printed.

Claude-Session: https://claude.ai/code/session_01Wrb85mvgMjYTHHSkKWFre4
@jfrench9
jfrench9 merged commit 03a7f00 into main Sep 9, 2026
4 checks passed
@jfrench9
jfrench9 deleted the bugfix/deploy-settle-wait branch September 9, 2026 17:19
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant