{"record":{"id":"2940df9ff2adcb9c","repo":"Hmbown/CodeWhale","slug":"managed-external-credential-access-is-unsupported","errorCode":null,"errorMessage":"managed external credential access is unsupported in v0.9.1: no provider has a reviewed schema-safe preservation adapter. Use --mode read-only, or use Codewhale-owned login/API-key storage.","messagePattern":"managed external credential access is unsupported in v0\\.9\\.1: no provider has a reviewed schema-safe preservation adapter\\. Use --mode read-only, or use Codewhale-owned login/API-key storage\\.","errorType":"console","errorClass":null,"httpStatus":null,"severity":"error","filePath":"crates/cli/src/lib.rs","lineNumber":4112,"sourceCode":"            std::process::exit(if code == std::process::ExitCode::SUCCESS {\n                0\n            } else {\n                1\n            })\n        }\n        AuthCommand::ExternalConsent {\n            provider,\n            mode,\n            path,\n            yes,\n        } => {\n            let (source, path) = external_credential_target(provider, path)?;\n            let preview = external_consent_preview_lines(provider, source, &path);\n            for line in &preview {\n                println!(\"{line}\");\n            }\n            if mode == ExternalCredentialModeArg::Managed {\n                bail!(\n                    \"managed external credential access is unsupported in v0.9.1: no provider has a reviewed schema-safe preservation adapter. Use --mode read-only, or use Codewhale-owned login/API-key storage.\"\n                );\n            }\n            confirm_external_consent(yes)?;\n            let path_value = path.to_str().context(\n                \"external credential path cannot be persisted losslessly because it is not valid UTF-8\",\n            )?;\n            let provider_key = provider.provider().provider_config_key();\n            codewhale_config::mutate_config_document(store.path(), |document| {\n                if matches!(provider, ProviderKind::OpenaiCodex | ProviderKind::Xai) {\n                    codewhale_config::set_config_document_value(\n                        document,\n                        &[\"providers\", provider_key, \"auth_mode\"],\n                        \"oauth\",\n                    )?;\n                }\n                let prefix = &[\"providers\", provider_key, \"external_credentials\"];\n                codewhale_config::set_config_document_value(","sourceCodeStart":4094,"sourceCodeEnd":4130,"githubUrl":"https://github.com/Hmbown/CodeWhale/blob/73e0f67d83c59909b571efdfc88c4bc28c309cb1/crates/cli/src/lib.rs#L4094-L4130","documentation":"During external credential consent, --mode managed is refused for this release: no provider has a reviewed schema-safe preservation adapter, so Codewhale will not take over or rewrite an external CLI's credential file. The error directs users to read-only mode or Codewhale-owned storage.","triggerScenarios":"Running the external credential consent flow with `--mode managed` after the preview lines are printed (crates/cli/src/lib.rs:4112).","commonSituations":"Users expecting managed mode to let Codewhale maintain external CLI credentials; automation passing the richest mode by default; attempting managed import during v0.9.1.","solutions":["Use `--mode read-only` to preview without preservation","Use Codewhale-owned login (`codewhale login`) or API-key storage (`codewhale auth set`) instead","Wait for a release that ships a reviewed preservation adapter for the provider"],"exampleFix":"// before\ncodewhale auth external --provider deepseek --mode managed\n// after\ncodewhale auth external --provider deepseek --mode read-only","handlingStrategy":"fallback","validationCode":null,"typeGuard":null,"tryCatchPattern":"try { run(['auth','external','--provider',p,'--mode','managed']) } catch { run(['auth','external','--provider',p,'--mode','read-only']) }","preventionTips":["Prefer --mode read-only for external credential inspection in v0.9.1","Track release notes for when managed preservation adapters land"],"tags":["cli","auth","unsupported","release-limitation"],"backgroundTag":"feature-not-enabled","analyzedSha":"73e0f67d83c59909b571efdfc88c4bc28c309cb1","analyzedAt":"2026-09-22T01:30:00.501Z","contentChangedAt":"2026-09-22T01:30:00.501Z","schemaVersion":2},"datasetVersion":"2026-09-23T08:17:48.524Z"}