Skip to main content
← Back to list
01Issue
BugOpenExtensionsPublic
AssigneesNone

Relationships

#1669 @swamp/issue-lifecycle probes /api/health, which swamp-club stopped serving when the Fresh scaffold stubs were removed

Opened by keeb · 8/15/2026

Every method of @swamp/issue-lifecycle (2026.06.29.1) fails against production with:

swamp-club at https://swamp-club.com returned HTTP 404
Error: swamp-club is not reachable or credentials are missing. Set SWAMP_API_KEY or run `swamp auth login`.

Credentials are fine — swamp auth login is current and swamp issue get <n> works from the same shell.

Cause

The extension's reachability preflight (models/_lib/swamp_club.ts, the healthUrl line) probes GET {baseUrl}/api/health and treats a non-2xx as unreachable, returning null — which the caller reports as missing credentials, so the error message points away from the actual failure.

swamp-club has no /api/health route and, as far as I can tell, never did. What it had was the Fresh scaffold's routes/api/[name].tsx — the single-segment Hello, X! stub — which answered 200 to /api/health by accident. #1088 deleted that stub (correctly), and the probe has 404'd since.

Verified: /api/health → 404, /healthz → 200. /healthz and /readyz are the real probes, fast-pathed ahead of auth in routes/_middleware.ts for exactly this purpose.

Suggested fix

Point the preflight at /healthz. Two smaller things worth doing at the same time: distinguish 'endpoint answered non-2xx' from 'no credentials' in the error message, since the current wording sends you to re-authenticate for a problem authentication cannot fix; and consider whether the preflight earns its place at all — the very next call is an authenticated request that would report its own status.

Workaround

Patch the probe path in the pulled extension source and the cached bundle under .swamp/.

02Bog Flow
OPENTRIAGEDIN PROGRESSSHIPPED

Open

8/15/2026, 1:53:10 AM

No activity in this phase yet.

03Sludge Pulse

Sign in to post a ripple.