diegosouzapw/OmniRoute · error
[models] antigravity onboardUser done but no project in…
Error message
[models] antigravity onboardUser done but no project in response at ${url} — Google BYOP (user-defined GCP project) required What it means
Terminal bootstrap condition for Google Bring-Your-Own-Project accounts: onboardUser returned 200 but the body lacked `cloudaicompanionProject`, meaning Google will not auto-create a project for this account tier (standard-tier/personal accounts, tracked in #8491). Detected explicitly so bootstrap fails fast with a clear instruction instead of fabricating a project id that Google would later reject with a delayed 429 RESOURCE_EXHAUSTED.
Solutions
- Configure a user-defined GCP project (BYOP) for the antigravity connection via the connection settings.
- Upgrade the Google account tier to one that supports automatic project creation.
- Document in the provider setup UI that standard-tier accounts must supply their own GCP project.
Defensive patterns
Strategy: validation
When it happens
Trigger: Thrown at open-sse/services/antigravityProjectBootstrap.ts:203 when the library encounters an invalid state.
Common situations: See trigger scenarios.
AI-assisted analysis of diegosouzapw/OmniRoute@a179ffed5b (2026-08-25).
Data as JSON: /api/errors/b7ea9de9f9c369b1.
Report an issue: GitHub.
Appendix: source
Thrown at open-sse/services/antigravityProjectBootstrap.ts:203
method: "POST",
headers,
body: JSON.stringify({
tier_id: tierId,
metadata: getAntigravityLoadCodeAssistMetadata(),
}),
signal: signal ? AbortSignal.any([signal, timeoutSignal]) : timeoutSignal,
});
if (response.ok) {
// Accounts Google expects to Bring Their Own Project: onboardUser
// returns 200 without a `cloudaicompanionProject` in the body — no
// automatic project creation for standard-tier/personal accounts
// (tracked in #8491). Detect that so we can fail fast with a clear
// instruction instead of retrying forever or fabricating an id that
// Google later rejects with a delayed 429 RESOURCE_EXHAUSTED.
const body = await response.text().catch(() => "");
if (body && !/cloudaicompanionProject/.test(body)) {
console.warn(
`[models] antigravity onboardUser done but no project in response at ${url} — Google BYOP (user-defined GCP project) required`
);
return "requires_manual_project";
}
return "onboarded";
}
console.warn(
`[models] antigravity onboardUser failed at ${url} (${response.status}) — trying next`
);
} catch (error) {
if (signal?.aborted || (error instanceof Error && error.name === "AbortError")) {
throw signal?.reason ?? error;
}
const msg = error instanceof Error ? error.message : String(error);
console.warn(`[models] antigravity onboardUser threw for ${url}: ${msg} — trying next`);
}
}View on GitHub (pinned to a179ffed5b)