{"record":{"id":"7a11acf1d83cbfd9","repo":"Hmbown/CodeWhale","slug":"antigravity-is-a-retired-non-runnable-legacy-provider-clear-7a11ac","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/config/src/lib.rs","lineNumber":1172,"sourceCode":"\nfn parse_context_window(value: &str) -> Result<u32> {\n    let parsed = value.trim().parse::<u32>().with_context(|| {\n        format!(\"invalid context_window '{value}': expected a positive token count\")\n    })?;\n    if parsed == 0 {\n        bail!(\"context_window must be greater than 0\");\n    }\n    Ok(parsed)\n}\n\nfn set_provider_config_value(\n    config: &mut ConfigToml,\n    provider: ProviderKind,\n    field: ProviderConfigField,\n    value: &str,\n) -> Result<()> {\n    if provider == ProviderKind::Antigravity {\n        bail!(LEGACY_ANTIGRAVITY_TOMBSTONE_MESSAGE);\n    }\n    match field {\n        ProviderConfigField::Vendor => {\n            if provider != ProviderKind::Openrouter {\n                bail!(\"vendor is only supported by providers.openrouter\");\n            }\n            validate_openrouter_vendor(value)?;\n            config.providers.for_provider_mut(provider).vendor = Some(value.to_string());\n        }\n        ProviderConfigField::ApiKey => {\n            let value = value.to_string();\n            config.providers.for_provider_mut(provider).api_key = Some(value.clone());\n            if provider == ProviderKind::Deepseek {\n                config.api_key = Some(value);\n            }\n        }\n        ProviderConfigField::BaseUrl => {\n            let value = value.to_string();","sourceCodeStart":1154,"sourceCodeEnd":1190,"githubUrl":"https://github.com/Hmbown/CodeWhale/blob/73e0f67d83c59909b571efdfc88c4bc28c309cb1/crates/config/src/lib.rs#L1154-L1190","documentation":"Thrown by `set_provider_config_value` when any provider config field is set for `ProviderKind::Antigravity`. Antigravity is a retired legacy provider that can no longer run; writes to its config are refused with a tombstone message pointing to cleanup and migration instructions.","triggerScenarios":"Calling `set_provider_config_value` (or any config-write command, e.g. `codewhale config set providers.antigravity.api_key ...`) with provider = Antigravity and any field/value.","commonSituations":"User with leftover legacy Antigravity state tries to update its API key or other setting; automation scripts still referencing the retired provider; following old docs that mention Antigravity.","solutions":["Run `codewhale auth clear --provider antigravity` to clear the Codewhale-owned legacy state (does not affect Google or Antigravity sessions).","For Gemini, use provider `google` with a `GEMINI_API_KEY` instead.","Update scripts/docs to stop targeting the antigravity provider."],"exampleFix":"// before\ncodewhale config set providers.antigravity.api_key sk-...\n// after\ncodewhale auth clear --provider antigravity\nexport GEMINI_API_KEY=...  # use provider `google`","handlingStrategy":"validation","validationCode":"fn provider_is_retired(p: ProviderKind) -> bool {\n    p == ProviderKind::Antigravity\n}\n// guard before any provider config write:\n// if provider_is_retired(provider) { /* route to migration steps */ }","typeGuard":null,"tryCatchPattern":"match set_provider_config_value(config, provider, field, value) {\n    Err(e) if e.to_string().contains(\"retired\") => {\n        eprintln!(\"{e}\");\n        // run: codewhale auth clear --provider antigravity, then use provider `google`\n    }\n    other => other,\n}","preventionTips":["Remove all `providers.antigravity` entries from config.toml.","Run `codewhale auth clear --provider antigravity` once after upgrading.","Update scripts and docs to target provider `google` with GEMINI_API_KEY for Gemini workloads."],"tags":["config","deprecated","provider","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"}