{"record":{"id":"8e58371798bd453d","repo":"warpdotdev/warp","slug":"attachment-upload-is-not-enabled","errorCode":null,"errorMessage":"Attachment upload is not enabled","messagePattern":"Attachment upload is not enabled","errorType":"validation","errorClass":null,"httpStatus":null,"severity":"error","filePath":"app/src/ai/agent_sdk/ambient.rs","lineNumber":374,"sourceCode":"                        .attachment_paths\n                        .iter()\n                        .enumerate()\n                        .map(|(i, path)| process_attachment(path, i))\n                        .collect::<Result<Vec<_>, _>>()\n                    {\n                        Ok(processed) => processed,\n                        Err(err) => {\n                            super::report_fatal_error(err, ctx);\n                            return;\n                        }\n                    }\n                } else {\n                    vec![]\n                }\n            } else {\n                if !args.attachment_paths.is_empty() {\n                    super::report_fatal_error(\n                        anyhow::anyhow!(\"Attachment upload is not enabled\"),\n                        ctx,\n                    );\n                    return;\n                }\n                vec![]\n            };\n\n            let mut environment_args = args.environment;\n            if environment_args.environment.is_none() && !environment_args.no_environment\n                && let Some(environment_id) = loaded_file\n                    .as_ref()\n                    .and_then(|f| f.file.environment_id.clone())\n                {\n                    environment_args.environment = Some(environment_id);\n                }\n\n            let environment_id = match EnvironmentChoice::resolve_for_create(environment_args, ctx)\n            {","sourceCodeStart":356,"sourceCodeEnd":392,"githubUrl":"https://github.com/warpdotdev/warp/blob/e72fd7aacbbb2236d9b3be2aad7e7178fe94b4bc/app/src/ai/agent_sdk/ambient.rs#L356-L392","documentation":"Fatal error raised by the ambient (cloud) agent launcher when attachment paths are supplied while the `AmbientAgentsImageUpload` feature flag is disabled in the running build. Rather than silently dropping user files, the CLI aborts the run before agent startup. Whether attachment processing exists at all is controlled by Warp's runtime feature-flag plumbing (dogfood/preview/release flag lists in warp_core/src/features.rs).","triggerScenarios":"Running an agent-sdk launch command with a non-empty `attachment_paths` argument (CLI attachment flags or a config file) while `FeatureFlag::AmbientAgentsImageUpload.is_enabled()` returns false. The earlier max-count check (MAX_ATTACHMENT_COUNT_FOR_CLOUD_QUERY) passes, then the flag gate fails and report_fatal_error terminates the command.","commonSituations":"Using attachment flags on a stable/release build where the feature is not rolled out; a dogfood runtime flag toggled off; automation written against a dev build then run on a production build; config files carrying attachment entries on builds without the flag.","solutions":["Remove the attachment arguments (or clear the attachments entry in the config file) and rerun","Run on a build where AmbientAgentsImageUpload is enabled (dogfood/preview channel, or a dev build with the flag enabled)","If you control the build: add FeatureFlag::AmbientAgentsImageUpload to the enabled flag list in warp_core/src/features.rs and rebuild","Gate your tooling on FeatureFlag::AmbientAgentsImageUpload.is_enabled() before ever passing attachments"],"exampleFix":"# before\nwarp agent run --attachments ./img.png \"prompt\"\n# after (build without the flag)\nwarp agent run \"prompt\"","handlingStrategy":"validation","validationCode":"use warp_core::features::FeatureFlag;\n\nfn attachments_allowed(paths: &[std::path::PathBuf]) -> bool {\n    FeatureFlag::AmbientAgentsImageUpload.is_enabled() || paths.is_empty()\n}\n// Clear/skip attachment args when false; never send them to a build without the flag.","typeGuard":null,"tryCatchPattern":null,"preventionTips":["Check FeatureFlag::AmbientAgentsImageUpload.is_enabled() before collecting attachment paths","Keep config files free of attachment entries on release builds","Pin automation to a channel that supports image upload"],"tags":["feature-flag","ambient-agent","attachments","cli"],"backgroundTag":null,"analyzedSha":"e72fd7aacbbb2236d9b3be2aad7e7178fe94b4bc","analyzedAt":"2026-08-16T08:27:25.381Z","schemaVersion":2},"datasetVersion":"2026-08-16T13:17:31.715Z"}