{"record":{"id":"1e584fcd364edbe2","repo":"Hmbown/CodeWhale","slug":"antigravity-is-a-retired-non-runnable-legacy-provider-clear-1e584f","errorCode":null,"errorMessage":"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`.","messagePattern":"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`\\.","errorType":"validation","errorClass":null,"httpStatus":null,"severity":"error","filePath":"crates/tui/src/config.rs","lineNumber":5081,"sourceCode":"        tracing::warn!(\n            \"Top-level `base_url = \\\"{root_base}\\\"` is ignored for the {provider:?} provider. \\\n             Move it under `[{table}]` (e.g. `[{table}]\\\\nbase_url = \\\"...\\\"`) \\\n             or set the corresponding `*_BASE_URL` env var. (#1308)\"\n        );\n    }\n\n    /// Validate that critical config fields are present.\n    pub fn validate(&self) -> Result<()> {\n        codewhale_config::catalog::configured::validate_configured_models(\n            self.custom_models.as_deref().unwrap_or_default(),\n        )?;\n        self.openrouter_vendor()?;\n        if self\n            .provider\n            .as_deref()\n            .is_some_and(is_legacy_antigravity_identity)\n        {\n            anyhow::bail!(codewhale_config::LEGACY_ANTIGRAVITY_TOMBSTONE_MESSAGE);\n        }\n        if let Some(provider) = self.provider.as_deref()\n            && ApiProvider::parse(provider).is_none()\n            && self\n                .providers\n                .as_ref()\n                .and_then(|providers| providers.custom_provider_config(provider))\n                .is_none()\n        {\n            anyhow::bail!(\n                \"Invalid provider '{provider}': expected {}.\",\n                ApiProvider::names_hint()\n            );\n        }\n        let active_provider = self.api_provider();\n        match validate_kimi_code_api_model_id(\n            active_provider,\n            &self.active_route_base_url(),","sourceCodeStart":5063,"sourceCodeEnd":5099,"githubUrl":"https://github.com/Hmbown/CodeWhale/blob/73e0f67d83c59909b571efdfc88c4bc28c309cb1/crates/tui/src/config.rs#L5063-L5099","documentation":"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.","triggerScenarios":"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`.","commonSituations":"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.","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."],"exampleFix":"// before\nprovider = \"antigravity\"\n// after\nprovider = \"google\"  # with GEMINI_API_KEY set","handlingStrategy":"validation","validationCode":"if provider.eq_ignore_ascii_case(\"antigravity\") {\n    return Err(\"antigravity is retired; use provider 'google' with GEMINI_API_KEY\");\n}","typeGuard":null,"tryCatchPattern":null,"preventionTips":["Grep configs and scripts for 'antigravity' after upgrading.","Run `codewhale auth clear --provider antigravity` once during migration."],"tags":["config","provider","deprecated","migration"],"backgroundTag":"deprecated-api-usage","analyzedSha":"73e0f67d83c59909b571efdfc88c4bc28c309cb1","analyzedAt":"2026-09-22T01:30:00.501Z","contentChangedAt":"2026-09-22T01:30:00.501Z","schemaVersion":2},"datasetVersion":"2026-09-22T11:17:16.035Z"}