warpdotdev/warp · error
`runner_id` is set in the config file but runner support is
Error message
`runner_id` is set in the config file but runner support is not enabled
What it means
The --runner CLI flag is feature-gated, but a config file can also set runner_id, which would bypass that gate; the guard at app/src/ai/agent_sdk/ambient.rs:322-336 catches the bypass and calls report_fatal_error when the config file has runner_id set while FeatureFlag::CloudRunners is disabled.
Source
Thrown at app/src/ai/agent_sdk/ambient.rs:331
Ok(file) => Some(file),
Err(err) => {
super::report_fatal_error(err, ctx);
return;
}
},
None => None,
};
// The `--runner` CLI flag is gated in `run_agent`, but a config file
// can also set `runner_id`, which would otherwise bypass the gate.
if loaded_file
.as_ref()
.and_then(|f| f.file.runner_id.as_ref())
.is_some()
&& !FeatureFlag::CloudRunners.is_enabled()
{
super::report_fatal_error(
anyhow::anyhow!(
"`runner_id` is set in the config file but runner support is not enabled"
),
ctx,
);
return;
}
// Validate and process attachments early, before environment selection
// This ensures users don't have to go through env selection if attachment validation fails
if args.attachment_paths.len() > MAX_ATTACHMENT_COUNT_FOR_CLOUD_QUERY {
super::report_fatal_error(
anyhow::anyhow!(
"Too many attachments. Maximum {} attachments allowed, but {} were provided.",
MAX_ATTACHMENT_COUNT_FOR_CLOUD_QUERY,
args.attachment_paths.len()
),
ctx,
);View on GitHub (pinned to e72fd7aacb)
Solutions
- Remove runner_id from the config file
- Or run on a build/account where CloudRunners is enabled
Example fix
# before (config file) runner_id = "my-runner" # after # (field removed)
Defensive patterns
Strategy: validation
Validate before calling
if let Ok(file) = super::config_file::load_config_file(path) {
if file.file.runner_id.is_some() && !FeatureFlag::CloudRunners.is_enabled() {
// reject or strip runner_id before launching the run
}
} Prevention
- Validate config files against the current feature-flag state before passing them
- Keep environment-specific config files separate instead of sharing one with runner_id across flag states
When it happens
Trigger: Supplying a config file (via the run command's config-file argument) whose runner_id field is set, on a build/account where the CloudRunners feature flag is off.
Common situations: Config files shared between environments where the flag state differs; a leftover runner_id after the flag was rolled back or the config was copied from a dogfood setup.
Related errors
- Unsupported feature
- unexpected argument '--skill' found
- Attachment upload is not enabled
- MCP server '{name}' field 'warp_id' must be a UUID
- `runner_id` is set in the config file but runner support is
AI-assisted analysis of warpdotdev/warp@e72fd7aacb (2026-08-16).
Data as JSON: /api/errors/fa0e85a94c534bb2.
Report an issue: GitHub.