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/.
Closed
No activity in this phase yet.