Conversation
…t (aws-cdk#15891 CREATE timeout)
🦋 Changeset detectedLatest commit: a211111 The changes in this PR will be included in the next version bump. This PR includes changesets to release 2 packages
Not sure what this means? Click here to learn what changesets are. Click here if you're a maintainer who wants to add another changeset to this PR |
This branch was previously deployed
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
All three of #391, #460 and #459 are failing on the same shared E2E Hosting jobs, and it is not their code — it is a latent bug in
packages/core/src/hosting.ts.The
Hosting/BlocksConfigDeploymentBucketDeploymentwas given a CloudFrontdistribution:+distributionPaths:. ABucketDeploymentthat is asked to invalidate waits for the invalidation to be CONFIRMED, and that confirmation step hangs on a fresh stack CREATE — aws-cdk#15891. The result is a cascade:CREATE_FAILED→ ~30-minute rollback → retry → the 63-minute job timeout trips → all E2E Hosting jobs cancelled.The code is latent from #115 /
9d4ccea8; it only started firing after #465/#466 made CI perform fresh stack CREATEs rather than updates, which is why three unrelated PRs suddenly went red together.Fix
Remove
distributionanddistributionPathsfrom only theBlocksConfigDeploymentBucketDeployment. Nothing else changes:sources,destinationBucket,destinationKeyPrefix,prune,cacheControland theaddDependencyordering over the asset deployments are all untouched.The invalidation was defense-in-depth only, so dropping it is safe:
config.jsonalready carriesCache-Control: public, max-age=60, must-revalidate, so any edge entry self-expires within 60s;Cache impact is therefore negligible — a worst-case 60-second window that already existed by design.
This also matches existing repo precedent: the asset deployments in
packages/hosting/src/constructs/hosting_construct.tsdeliberately carry nodistribution/distributionPaths, andhosting_construct.atomic_deploy.test.tsalready asserts that noBucketDeploymentemits an invalidation.Tests
The one test that asserted the removed wiring —
invalidates the post-rewrite cache key (/builds/<id>/.blocks-sandbox/*)— has been inverted into a regression guard,does NOT emit a CloudFront invalidation on any BucketDeployment, mirroring theatomic_deployprecedent. It scans everyCustom::CDKBucketDeploymentin the synthesized template and fails if any rendersDistributionId/DistributionPaths, plus a vacuity guard so it cannot pass by finding zero deployments.Verified locally (Node 22, per
.nvmrc):npm run build(root) → exit 0npm test -w @aws-blocks/core→ 729 pass / 0 failnpm test -w @aws-blocks/hosting→ 845 pass / 0 failchangeset-guard.tsvalidate-structure/verify-coverage/block-major/verify-umbrella→ all exit 0distribution/distributionPathsmakes the new test fail (exit 1), proving the guard is real and not vacuous.The changeset bumps both
@aws-blocks/coreand the@aws-blocks/blocksumbrella, asverify-umbrellarequires (#273).Fixes the shared E2E Hosting failure blocking #391, #460 and #459.