Hmbown/CodeWhale · error
Antigravity is a retired, non-runnable legacy provider…
Error message
Antigravity is a retired, non-runnable legacy provider. Clear Codewhale-owned legacy state with `codewhale auth clear --provider antigravity`; this does not alter Google or Antigravity sessions. For Gemini use provider `google` with `GEMINI_API_KEY`.
What it means
Antigravity is a retired legacy provider and can no longer run. If config still names it as the provider, validation fails with the tombstone message, directing users to clear Codewhale-owned legacy auth state and to use provider `google` with GEMINI_API_KEY for Gemini. Thrown at config.rs:5081.
Solutions
- Change provider to `google` and set GEMINI_API_KEY for Gemini usage.
- Run `codewhale auth clear --provider antigravity` to remove Codewhale-owned legacy state.
- Update any scripts/env vars that still set provider = antigravity.
Example fix
// before provider = "antigravity" // after provider = "google" # with GEMINI_API_KEY set
Defensive patterns
Strategy: validation
Validate before calling
if provider.eq_ignore_ascii_case("antigravity") {
return Err("antigravity is retired; use provider 'google' with GEMINI_API_KEY");
} Prevention
- Grep configs and scripts for 'antigravity' after upgrading.
- Run `codewhale auth clear --provider antigravity` once during migration.
When it happens
Trigger: The configured `provider` value passes is_legacy_antigravity_identity (any antigravity spelling/identity) during provider validation, e.g. provider = "antigravity" in the config file or via `codewhale --provider antigravity`.
Common situations: Upgrading from an older install where antigravity was a supported provider; stale config or scripts referencing antigravity; legacy auth state left behind from the retired provider.
Understand the failure class
Background: "is deprecated and will be removed" — deprecation warnings for old API names, keywords, and options, and how to migrate before the removal release — this error's family across 29 libraries.
Related errors
- Antigravity is a retired, non-runnable legacy provider…
- Antigravity is a retired, non-runnable legacy provider…
- Choose a model for the destination provider before…
- Invalid auto_review.allow
- {LEGACY_ANTIGRAVITY_TOMBSTONE_MESSAGE}
AI-assisted analysis of Hmbown/CodeWhale@73e0f67d83 (2026-09-22).
Data as JSON: /api/errors/1e584fcd364edbe2.
Report an issue: GitHub.
Appendix: source
Thrown at crates/tui/src/config.rs:5081
tracing::warn!(
"Top-level `base_url = \"{root_base}\"` is ignored for the {provider:?} provider. \
Move it under `[{table}]` (e.g. `[{table}]\\nbase_url = \"...\"`) \
or set the corresponding `*_BASE_URL` env var. (#1308)"
);
}
/// Validate that critical config fields are present.
pub fn validate(&self) -> Result<()> {
codewhale_config::catalog::configured::validate_configured_models(
self.custom_models.as_deref().unwrap_or_default(),
)?;
self.openrouter_vendor()?;
if self
.provider
.as_deref()
.is_some_and(is_legacy_antigravity_identity)
{
anyhow::bail!(codewhale_config::LEGACY_ANTIGRAVITY_TOMBSTONE_MESSAGE);
}
if let Some(provider) = self.provider.as_deref()
&& ApiProvider::parse(provider).is_none()
&& self
.providers
.as_ref()
.and_then(|providers| providers.custom_provider_config(provider))
.is_none()
{
anyhow::bail!(
"Invalid provider '{provider}': expected {}.",
ApiProvider::names_hint()
);
}
let active_provider = self.api_provider();
match validate_kimi_code_api_model_id(
active_provider,
&self.active_route_base_url(),View on GitHub (pinned to 73e0f67d83)