{"record":{"id":"ff15fbb26aa3e285","repo":"Hmbown/CodeWhale","slug":"set-is-not-supported-by-the-legacy-app-server-transport-use","errorCode":null,"errorMessage":"--set is not supported by the legacy app-server transport; use app-server --http or a saved config","messagePattern":"--set is not supported by the legacy app-server transport; use app-server --http or a saved config","errorType":"validation","errorClass":null,"httpStatus":null,"severity":"error","filePath":"crates/cli/src/lib.rs","lineNumber":1956,"sourceCode":"    let matches = Cli::command().get_matches();\n    let project_bundle_scope = config_command_targets_project(&matches);\n    let mut cli = Cli::from_arg_matches(&matches).unwrap_or_else(|error| error.exit());\n\n    // The detached log proxy must not depend on user config parsing: its job\n    // is to frame child output and publish a terminal receipt even when the\n    // delegated command's own config is malformed.\n    let (proxy, command) = split_lane_log_proxy_command(cli.command.take());\n    if let Some(args) = proxy {\n        return run_lane_log_proxy_command(args);\n    }\n\n    if !cli.overrides.is_empty() && matches!(command, Some(Commands::Auth(_))) {\n        bail!(\"--set is not supported by auth commands; use a saved config\");\n    }\n    if !cli.overrides.is_empty()\n        && matches!(&command, Some(Commands::AppServer(args)) if !args.http && !args.mobile)\n    {\n        bail!(\n            \"--set is not supported by the legacy app-server transport; use app-server --http or a saved config\"\n        );\n    }\n    if !matches!(command, Some(Commands::Config(_))) {\n        apply_runtime_set_overrides(&mut cli)?;\n    }\n\n    let pipe_api_key_handoff = matches!(\n        &command,\n        Some(Commands::Auth(AuthArgs {\n            command: AuthCommand::PrintApiKey { .. }\n        }))\n    );\n    if pipe_api_key_handoff {\n        credential_handoff::prepare_stdout(io::stdout().is_terminal())?;\n    }\n    let runtime_provider = top_level_provider_override(cli.provider.as_deref(), command.as_ref())?;\n    let uses_raw_tui_provider = cli.provider.is_some() && runtime_provider.is_none();","sourceCodeStart":1938,"sourceCodeEnd":1974,"githubUrl":"https://github.com/Hmbown/CodeWhale/blob/73e0f67d83c59909b571efdfc88c4bc28c309cb1/crates/cli/src/lib.rs#L1938-L1974","documentation":"The dispatcher rejects `--set` overrides for the legacy (non-HTTP, non-mobile) app-server transport: that transport predates runtime overrides and does not consume them. Bail occurs when `cli.overrides` is non-empty and the command is `Commands::AppServer(args)` with `!args.http && !args.mobile`. The message directs users to the `--http` transport or a saved config.","triggerScenarios":"Running `codewhale app-server` (without `--http` or `--mobile`) together with any `--set key=value` override.","commonSituations":"Older launch scripts that pair the legacy app-server with new-style `--set` overrides after a version upgrade, or following outdated documentation.","solutions":["Switch to the current transport: `codewhale app-server --http` and keep your `--set` flags.","Keep the legacy transport but drop `--set` and bake the settings into a saved config via `codewhale config set`.","Use `--mobile` transport instead if that matches your client, also compatible with `--set`."],"exampleFix":"// before\ncodewhale --set model=gpt-x app-server\n// error: --set is not supported by the legacy app-server transport\n\n// after\ncodewhale --set model=gpt-x app-server --http","handlingStrategy":"validation","validationCode":"# ensure app-server uses the http transport when overrides are present\nif [ -n \"$OVERRIDES\" ]; then\n  set -- \"$@\" --http\nfi\ncodewhale $OVERRIDES app-server --http","typeGuard":null,"tryCatchPattern":"match run(args) {\n    Err(e) if e.to_string().contains(\"legacy app-server transport\") => {\n        eprintln!(\"add --http (or drop --set)\");\n    }\n    r => r?,\n}","preventionTips":["Always launch app-server with --http for new integrations.","Audit legacy launch scripts after upgrades for --set usage.","Bake overrides into saved config when staying on the legacy transport."],"tags":["cli","app-server","flags","configuration"],"backgroundTag":"conflicting-config-options","analyzedSha":"73e0f67d83c59909b571efdfc88c4bc28c309cb1","analyzedAt":"2026-09-22T01:30:00.501Z","contentChangedAt":"2026-09-22T01:30:00.501Z","schemaVersion":2},"datasetVersion":"2026-09-23T02:17:17.105Z"}