Hmbown/CodeWhale · error · anyhow::Error
unknown cloud '{slug}'. {}
Error message
unknown cloud '{slug}'. {} What it means
resolve_cloud received a --cloud slug that matches no entry in the CLOUD_TARGETS registry (the message appends the valid choices); a user-supplied flag typo or an outdated slug.
Source
Thrown at crates/tui/src/remote_setup/mod.rs:146
}
fn print_header() {
use crate::palette;
use colored::Colorize;
let (r, g, b) = palette::WHALE_INFO_RGB;
println!("{}", "Codewhale Remote Setup".truecolor(r, g, b).bold());
println!("{}", "======================".truecolor(r, g, b));
println!("Generate a deploy bundle for a remote Codewhale agent (cloud + chat bridge).");
}
// ---------------------------------------------------------------------------
// Resolution: flag -> prompt (unless --non-interactive) -> validated value
// ---------------------------------------------------------------------------
fn resolve_cloud(args: &RemoteSetupArgs) -> Result<&'static CloudTarget> {
if let Some(slug) = &args.cloud {
return registry::cloud_by_slug(slug)
.ok_or_else(|| anyhow::anyhow!("unknown cloud '{slug}'. {}", cloud_choices()));
}
if args.non_interactive {
bail!(
"--cloud is required in --non-interactive mode. {}",
cloud_choices()
);
}
let idx = prompt_choice(
"Cloud target",
&CLOUD_TARGETS
.iter()
.map(|c| format!("{} ({})", c.display, c.slug))
.collect::<Vec<_>>(),
)?;
Ok(&CLOUD_TARGETS[idx])
}
fn resolve_bridge(args: &RemoteSetupArgs) -> Result<&'static BridgeSpec> {View on GitHub (pinned to 0c42157ee5)
Solutions
- Re-run with one of the listed cloud slugs
- Drop --cloud to get the interactive cloud picker
Defensive patterns
Strategy: validation
When it happens
Trigger: Thrown at crates/tui/src/remote_setup/mod.rs:146 when the library encounters an invalid state.
Common situations: See trigger scenarios.
AI-assisted analysis of Hmbown/CodeWhale@0c42157ee5 (2026-08-20).
Data as JSON: /api/errors/d9a67f7a386feb9a.
Report an issue: GitHub.