{"record":{"id":"975aedd77bc4d54b","repo":"windmill-labs/windmill","slug":"indexer-mode-requires-compiling-with-the-tantivy-f","errorCode":null,"errorMessage":"Indexer mode requires compiling with the tantivy feature flag.","messagePattern":"Indexer mode requires compiling with the tantivy feature flag\\.","errorType":"panic","errorClass":null,"httpStatus":null,"severity":"error","filePath":"backend/windmill-common/src/utils.rs","lineNumber":142,"sourceCode":"                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\");\n                Mode::MCP\n            } else {\n                if &x != \"standalone\" {\n                    eprintln!(\"mode not recognized, defaulting to standalone: {x}\");\n                } else {\n                    println!(\"Binary is in 'standalone' mode\");\n                }\n                Mode::Standalone\n            }","sourceCodeStart":124,"sourceCodeEnd":160,"githubUrl":"https://github.com/windmill-labs/windmill/blob/e474e8803ce2ff5c2df09a58dab51d45f5c922ca/backend/windmill-common/src/utils.rs#L124-L160","documentation":"Windmill binaries can run in several modes (server, worker, indexer, etc.) selected via a CLI flag. The 'indexer' mode (full-text search indexing) depends on the tantivy crate, which is an enterprise-edition feature gated behind the 'tantivy' cargo feature. If a binary compiled without that feature is asked to run in indexer mode, it panics at startup rather than starting a non-functional indexer.","triggerScenarios":"Starting the binary with mode 'indexer' (e.g. `windmill indexer ...`) while it was compiled without `--features tantivy` — typically a community/CE or OSS image.","commonSituations":"Deploying the CE/oss docker image with indexer mode enabled; a docker-compose or Helm values file copied from an EE deployment; setting mode via the `MODE`/binary arg in a shared template; upgrading to full-text search without switching to the EE image.","solutions":["Use the enterprise edition image (ghcr.io/windmill-labs/windmill-ee) which is compiled with the tantivy feature","Change the deployment mode to 'standalone+search' only if the binary supports tantivy; otherwise run 'standalone'/'server' mode without indexer","Remove the indexer replica from your deployment if full-text search is not needed","Build the binary locally with `cargo build --features tantivy` if self-compiling"],"exampleFix":"// before (docker-compose, CE image)\nimage: ghcr.io/windmill-labs/windmill:main\ncommand: \"indexer\"\n// after\nimage: ghcr.io/windmill-labs/windmill-ee:main\ncommand: \"indexer\"","handlingStrategy":"validation","validationCode":"// In deployment config, before starting:\nconst os = require('child_process').execSync;\nconst mode = process.env.MODE || 'standalone';\nif (mode === 'indexer' && !isEeImage()) {\n  throw new Error('indexer mode requires the EE image (tantivy feature)');\n}","typeGuard":null,"tryCatchPattern":null,"preventionTips":["Pin the EE image wherever indexer/full-text search is enabled","Keep mode settings in one deployment template reviewed per image variant","Smoke-test startup with the chosen mode before rollout"],"tags":["rust","feature-flag","deployment","startup"],"backgroundTag":"missing-feature-flag","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"}