JuliusBrussee/caveman · error · Error
Caveman Cloud platform is still in beta.
Error message
Caveman Cloud platform is still in beta.
What it means
blockCloudLoginWhileBeta is a hard gate that throws before any Cloud login work (argument parsing, network, browser, writes) because the Caveman Cloud platform is not yet open; device login is intentionally dormant.
Source
Thrown at packages/cli/src/index.ts:9317
const code = typeof body?.error?.code === "string" ? body.error.code : `HTTP ${response.status}`;
lastError = code;
// Invalid/expired grants are terminal. Infrastructure responses remain
// retryable so a committed ACK whose response was dropped can converge.
if (response.status < 500 && response.status !== 429) break;
} catch (error) {
lastError = error instanceof Error ? error.message : String(error);
}
if (attempt < 4) await sleep(Math.min(2000, 200 * 2 ** attempt));
}
throw new Error(`device credential delivery acknowledgement failed (${lastError}); credentials were persisted locally but the server may revoke them after the delivery window`);
}
// 0600 credentials file) — never in plaintext config. organization_id is bound
// from the returned token, never from any local input.
// Keep device-flow implementation dormant for later beta reopening. This gate
// runs before argument parsing, network requests, browser launch, or local writes.
function blockCloudLoginWhileBeta(): void {
throw new Error("Caveman Cloud platform is still in beta.");
}
async function login(argv: string[] = []) {
blockCloudLoginWhileBeta();
const { noBrowser } = validateLoginArgs(argv);
const baseURL = resolveLoginBaseUrl(argv);
const codeResp = await fetch(`${baseURL}/api/v1/auth/device/code`, {
method: "POST",
headers: { "content-type": "application/json" },
body: "{}",
signal: AbortSignal.timeout(5000),
});
if (!codeResp.ok) throw new Error(`device authorization failed: HTTP ${codeResp.status}`);
const code = await codeResp.json();
if (!code.device_code) throw new Error(`device authorization failed: ${JSON.stringify(code)}`);
const verificationURL = code.verification_uri_complete ?? code.verification_uri;View on GitHub (pinned to 5184b3d11a)
Solutions
- Wait until the cloud beta reopens and the gate is removed
- Use local-only Caveman workflows in the meantime
Defensive patterns
Strategy: validation
When it happens
Trigger: Thrown at packages/cli/src/index.ts:8472 when the library encounters an invalid state.
Common situations: See trigger scenarios.
AI-assisted analysis of JuliusBrussee/caveman@5184b3d11a (2026-08-18).
Data as JSON: /api/errors/fb632947ee799697.
Report an issue: GitHub.