Hmbown/CodeWhale · info · anyhow::Error
Account settings import is not available yet; local config w
Error message
Account settings import is not available yet; local config was not changed. Run `codewhale account pull --dry-run` to inspect the signed-in account.
What it means
`codewhale account pull` without --dry-run is intentionally unimplemented: the service's /api/me exposes identity and key metadata, not a versioned settings document that could be applied locally, so the command stays read-only until that import contract exists. The bail guarantees local config is never changed by a half-specified import.
Source
Thrown at crates/cli/src/cloud.rs:686
)?;
Ok(())
}
CloudKeysCommand::Remove { provider } => {
let user = client.me()?;
client.remove_key(provider)?;
writeln!(
out,
"Removed {} from Codewhale account {} (profile {}).",
provider.slug(),
printable(&user.id),
printable(profile)
)?;
Ok(())
}
},
CloudCommand::Pull(args) => {
if !args.dry_run {
bail!(
"Account settings import is not available yet; local config was not changed. Run `codewhale account pull --dry-run` to inspect the signed-in account."
);
}
let user = client.me()?;
// `/api/me` currently exposes account identity and key metadata,
// not a versioned settings document that can be applied locally.
// Stay read-only and explicit until that import contract exists.
writeln!(out, "Account settings (pull --dry-run):")?;
writeln!(out, "Account ID: {}", printable(&user.id))?;
writeln!(out, "Profile: {}", printable(profile))?;
writeln!(out, "API: {api_base}")?;
writeln!(
out,
"dry-run: remote settings import is not available; local config unchanged"
)?;
// Show the invariant: Bearer custody stays in the OS keyring, never in config.toml.
writeln!(
out,View on GitHub (pinned to 0c42157ee5)
Solutions
- Run `codewhale account pull --dry-run` to inspect account id, profile, API base, and key metadata.
- Apply any wanted settings manually in local config; there is no automated import yet.
- Track the feature; once /api/me exposes a versioned settings document, non-dry-run pull will ship.
- Remove pull (non-dry-run) from automation scripts.
Example fix
# before codewhale account pull # after codewhale account pull --dry-run
Defensive patterns
Strategy: validation
Validate before calling
// In automation, force the safe mode explicitly
let args = PullArgs { dry_run: true }; // never construct non-dry-run pull today Prevention
- Always call `account pull --dry-run` until the import contract ships.
- Keep config-sync automation on dry-run; apply changes manually.
- Watch release notes for the settings-document API that enables real pull.
When it happens
Trigger: Running `codewhale account pull` (no flags) expecting settings to be applied; running it in scripts that assumed pull applies remote settings.
Common situations: Users assuming parity with `push`, automation invoking pull for config sync, onboarding docs that promise account-settings sync before the feature shipped.
Related errors
- Push is never automatic; re-run with --dry-run to preview, t
- The Codewhale service returned an unexpectedly large respons
- Codewhale account login timed out; run `codewhale account lo
- The Codewhale service returned an account without an ID
- Not signed in. Run `codewhale account login` first
AI-assisted analysis of Hmbown/CodeWhale@0c42157ee5 (2026-08-20).
Data as JSON: /api/errors/5206a7d58edba2ee.
Report an issue: GitHub.