{"record":{"id":"e34cea4864261e62","repo":"windmill-labs/windmill","slug":"agent-mode-is-only-available-in-the-ee-ignoring","errorCode":null,"errorMessage":"Agent mode is only available in the EE, ignoring...","messagePattern":"Agent mode is only available in the EE, ignoring\\.\\.\\.","errorType":"panic","errorClass":null,"httpStatus":null,"severity":"error","filePath":"backend/windmill-common/src/utils.rs","lineNumber":133,"sourceCode":"            } else if &x == \"worker\" {\n                tracing::info!(\"Binary is in 'worker' mode\");\n                #[cfg(windows)]\n                {\n                    println!(\"It is highly recommended to use the agent mode instead on windows (MODE=agent) and to pass a BASE_INTERNAL_URL\");\n                }\n                Mode::Worker\n            } else if &x == \"agent\" {\n                println!(\"Binary is in 'agent' mode with BASE_INTERNAL_URL={}\", std::env::var(\"BASE_INTERNAL_URL\").unwrap_or_default());\n                if std::env::var(\"BASE_INTERNAL_URL\").is_err() {\n                    panic!(\"BASE_INTERNAL_URL is required in agent mode\")\n                }\n                if std::env::var(\"AGENT_TOKEN\").is_err() {\n                    println!(\"AGENT_TOKEN is not passed. This is required for the agent to work and contains the JWT to authenticate with the server.\")\n                }\n\n                #[cfg(not(feature = \"enterprise\"))]\n                {\n                    panic!(\"Agent mode is only available in the EE, ignoring...\");\n                }\n                #[cfg(feature = \"enterprise\")]\n                Mode::Agent\n            } else if &x == \"indexer\" {\n                tracing::info!(\"Binary is in 'indexer' mode\");\n                #[cfg(not(feature = \"tantivy\"))]\n                {\n                    eprintln!(\"Cannot start the indexer because tantivy is not included in this binary/image. Make sure you are using the EE image if you want to access the full text search features.\");\n                    panic!(\"Indexer mode requires compiling with the tantivy feature flag.\");\n                }\n                #[cfg(feature = \"tantivy\")]\n                Mode::Indexer\n            } else if &x == \"standalone+search\"{\n                search_addon = true;\n                    println!(\"Binary is in 'standalone' mode with search enabled\");\n                    Mode::Standalone\n            } else if &x == \"mcp\" {\n                println!(\"Binary is in 'mcp' mode\");","sourceCodeStart":115,"sourceCodeEnd":151,"githubUrl":"https://github.com/windmill-labs/windmill/blob/e474e8803ce2ff5c2df09a58dab51d45f5c922ca/backend/windmill-common/src/utils.rs#L115-L151","documentation":"Agent mode is an Enterprise Edition feature. When the binary is built without the `enterprise` feature, selecting `MODE=agent` panics with this message during startup mode parsing. The cfg-gated block means non-EE builds simply cannot run as agents.","triggerScenarios":"Running a community-edition windmill binary (built without the `enterprise` cargo feature) with `MODE=agent` set.","commonSituations":"Using the OSS docker image or a locally built non-EE binary while copying EE deployment docs that use agent mode; forgetting that agent mode requires the EE build/license.","solutions":["Use an Enterprise Edition build of Windmill (built with the `enterprise` feature) to run agents","On non-EE, replace MODE=agent with MODE=worker and configure the worker against the server directly","Check the panic context: the message says \"ignoring...\", so on some paths the mode may fall back — verify which mode actually started in the logs"],"exampleFix":"// before (OSS build)\nMODE=agent\n// after (OSS build)\nMODE=worker\n# or obtain/use an EE build with the enterprise feature for agent mode","handlingStrategy":"validation","validationCode":"# refuse agent mode on non-EE builds before startup\nif [ \"$MODE\" = \"agent\" ]; then\n  # e.g. check the binary edition\n  windmill --version | grep -q ee || { echo \"agent mode requires the EE build\" >&2; MODE=worker; fi\nfi","typeGuard":null,"tryCatchPattern":null,"preventionTips":["Match deployment manifests to the binary edition (OSS vs EE)","Check feature availability in docs/CI before enabling EE-only modes","Prefer MODE=worker on community builds; keep agent configs in EE-specific overlays"],"tags":["configuration","licensing","enterprise","agent","startup"],"backgroundTag":"feature-not-licensed","analyzedSha":"e474e8803ce2ff5c2df09a58dab51d45f5c922ca","analyzedAt":"2026-09-03T12:38:19.024Z","contentChangedAt":"2026-09-03T12:38:19.024Z","schemaVersion":2},"datasetVersion":"2026-09-08T10:18:20.063Z"}