Skip to content

docs(edge): check the local Vercel bundle with /readyz, not /healthz - #708

Merged
blove merged 1 commit into
mainfrom
blove/edge-docs-readyz
Sep 17, 2026
Merged

blove merged 1 commit into
mainfrom
blove/edge-docs-readyz

Conversation

@blove

@blove blove commented Sep 17, 2026

Copy link
Copy Markdown
Contributor

The "Run the Vercel bundle locally" recipe added in #698 verified nothing, because #694 landed after it.

#694 made GET /healthz pure process liveness and added GET /readyz. The recipe still called /healthz, which never builds the request's stores, so it answers 200 whether or not DATABASE_URL resolves. That is the opposite of what the section is for: it exists to prove the new pg fallback reached a plain local Postgres with no WebSocket proxy.

Verified, not assumed

Built a Vercel fixture from current main and ran both endpoints against a real local Postgres container:

Endpoint Reachable database Unreachable database
/healthz 200 {"status":"ready"} 200 {"status":"ready"}
/readyz 200, three stores ok 503 not_ready, names ECONNREFUSED

The two sample bodies in the diff are that run's actual output. I also ran the documented command verbatim, and confirmed the password in a failing connection string does not appear in the response body, which is what the redaction claim rests on.

/readyz passing is also an end-to-end confirmation of #698 itself: the checkpointer, threads store, and permissions store all answered over a pooled pg TCP connection to a non-Neon host, with no proxy anywhere.

Also

Adds /readyz to the rooted surfaces the runtime owns, two paragraphs above. That list was written before #694 and did not mention it.

Checks

check-docs.mjs, the docs snippet and docs bundle suites, the web SEO and docs component suites, and pnpm lint all pass. The SEO lastmod manifest is regenerated; only the edge route moves.

This touches no file that PR #700 touches.

🤖 Generated with Claude Code

PR #694 made /healthz pure process liveness and added /readyz, which lands
after the "Run the Vercel bundle locally" recipe this page gained in #698.
The recipe therefore verified nothing: /healthz never builds the request's
stores, so it answers 200 whether or not DATABASE_URL resolves, and the
whole point of that section is proving the pg fallback reached a local
Postgres with no WebSocket proxy.

Verified against a real local Postgres on a bundle built from main:
/healthz answers 200 with a database that is not there, /readyz answers 200
naming the three probed stores when it is, and 503 naming ECONNREFUSED when
it is not. The two sample bodies are that run's output, and the password in
the failing connection string does not appear in the response.

Also adds /readyz to the rooted surfaces the runtime owns.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
@vercel

vercel Bot commented Sep 17, 2026 •

Copy link
Copy Markdown

The latest updates on your projects. Learn more about Vercel for GitHub.

Project Deployment Actions Updated
b4-run Ready Ready Preview Sep 17, 2026 8:08pm UTC

Request Review

@github-actions github-actions Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Automated approval: this PR received an intelligent (AI) code review. See the review comments on this PR.

@blove
blove merged commit c12e41c into main Sep 17, 2026
30 of 31 checks passed
@blove
blove deleted the blove/edge-docs-readyz branch September 17, 2026 20:33
blove added a commit that referenced this pull request Sep 17, 2026
Neither change affects this page. #705 batches route-discovery errors,
and #708 is the edge page's own local-run recipe switching from /healthz
to /readyz for the same reason this guide already did.

#691 was closed unmerged, so the emitted function directory is still
index.func and this page's shadowing argument stands unchanged.

Only the lastmod manifest conflicted; regenerated.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>

This branch was successfully deployed

1 active and 1 inactive deployments
Preview — f747f807 Deployed Sep 17, 2026 by vercel[bot]
vercel-preview — f747f807 Deployed Sep 17, 2026 by blove via vercel-native #1996
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