Wait up to 10 minutes for a new public URL in the smoke check - #46
Merged
Merged
Conversation
A run of anurag/bloom-and-petal ended as deploy_failed, and its site was live. The first deploy of the new static site was live at 16:41:56 UTC. Then the smoke check got 404 from the site for all of its 3 minutes. At 16:51:46, the same deploy gave 200. Render can route a new onrender.com hostname some minutes after the first deploy of its service is live. The 404 did not come from the CDN cache: the CDN does not cache a 404 for an unknown host or for a missing path. The first check of the site and of the API health endpoint now waits up to 10 minutes (ROUTE_TIMEOUT_MS). The data check keeps 3 minutes (DATA_TIMEOUT_MS), because it starts after the health check of the same host passed. The summary of a failed check now tells how long the check waited. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
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
A run of
anurag/bloom-and-petalended asdeploy_failed, and its site was live:The timeline, from the Render API and HTTP probes on 2026-09-24:
publish-apppushed2adc8dd.deploy_failed.last-modified16:41:56).The name of the app was new, so no earlier service used the hostname. Render can route a new
onrender.comhostname some minutes after the first deploy of its service is live. The 404 did not come from the CDN cache: a 404 for an unknown host givescf-cache-status: DYNAMIC, and a 404 for a missing path givesBYPASS. Only a 200 page is cached, withs-maxage=300.verify-appalready runs the same build command and checks that it givesindex.html. So after a live deploy, a 404 from the site means that Render has not routed the hostname yet. It is not a fault in the app.Change
app/deploy.ts: the first check of the site and of the API health endpoint waits up to 10 minutes (ROUTE_TIMEOUT_MS). The data check keeps 3 minutes (DATA_TIMEOUT_MS), because it starts after the health check of the same host passed. So a data endpoint that is broken still fails in 3 minutes.tests/workflow.test.ts: a newawaitDeployment smoke checksblock checks the time limit of each wait and the summary of a site that does not answer.docs/README.mdandAGENTS.mdtell why the first check waits longer.Verification
npm run checkpasses: lint, typecheck, and 402 tests.app/deploy.ts, and pass on the new one.Not in this change
The rerun of the same prompt deployed, but Render made two deploys of its commit
074f292. The commit changed the files of the app and also its build command in the rootrender.yaml. The commit deploy (new_commit) started 2.6 s before the Blueprint sync deploy (blueprint_sync). It ran the old build command, which copiescssandjs, on the new files, which havestyles.cssandscript.js. So it ended asbuild_failed. The sync deploy used the new build command and went live. The run reporteddeployedcorrectly, but only because the sync deploy was the newest deploy before the commit deploy failed. A separate change can make one deploy per change.🤖 Generated with Claude Code