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

  1. Remove runner_id from the config file
  2. 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

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


AI-assisted analysis of warpdotdev/warp@e72fd7aacb (2026-08-16). Data as JSON: /api/errors/fa0e85a94c534bb2. Report an issue: GitHub.