{"record":{"id":"fcfc7862499b47c9","repo":"quickwit-oss/quickwit","slug":"file-extension-ext-is-not-supported-supporte","errorCode":null,"errorMessage":"file extension `.{ext}` is not supported. supported file formats and extensions are JSON (.json), TOML (.toml), and YAML (.yaml or .yml)","messagePattern":"file extension `\\.(.+?)` is not supported\\. supported file formats and extensions are JSON \\(\\.json\\), TOML \\(\\.toml\\), and YAML \\(\\.yaml or \\.yml\\)","errorType":"validation","errorClass":"anyhow::Error","httpStatus":null,"severity":"error","filePath":"quickwit/quickwit-config/src/lib.rs","lineNumber":278,"sourceCode":"                    toml::from_str(payload_str).context(\"failed to parse TOML file\")\n                }\n            }\n            ConfigFormat::Yaml => {\n                serde_yaml::from_slice(payload).context(\"failed to parse YAML file\")\n            }\n        }\n    }\n}\n\nimpl FromStr for ConfigFormat {\n    type Err = anyhow::Error;\n\n    fn from_str(ext: &str) -> anyhow::Result<Self> {\n        match ext {\n            \"json\" => Ok(Self::Json),\n            \"toml\" => Ok(Self::Toml),\n            \"yaml\" | \"yml\" => Ok(Self::Yaml),\n            _ => bail!(\n                \"file extension `.{ext}` is not supported. supported file formats and extensions \\\n                 are JSON (.json), TOML (.toml), and YAML (.yaml or .yml)\",\n            ),\n        }\n    }\n}\n\npub trait TestableForRegression: Serialize + DeserializeOwned {\n    /// Produces an instance of `Self` whose serialization output will be tested against future\n    /// versions of the format for backward compatibility.\n    fn sample_for_regression() -> Self;\n\n    /// Asserts that `self` and `other` are equal. It must panic if they are not.\n    fn assert_equality(&self, other: &Self);\n}\n\n/// Returns a fingerprint (a hash) of all the parameters that should force an\n/// indexing pipeline to restart upon index or source config updates.","sourceCodeStart":260,"sourceCodeEnd":296,"githubUrl":"https://github.com/quickwit-oss/quickwit/blob/a39730c5cdcd1a4fe798403737ae293999ea21f8/quickwit/quickwit-config/src/lib.rs#L260-L296","documentation":"quickwit-config loads configuration files by dispatching on their extension via `ConfigFormat::from_str`. Only `.json`, `.toml`, `.yaml`, and `.yml` are supported; any other extension causes this bail. The check exists so the parser knows which deserializer to use for the file.","triggerScenarios":"Passing a config file path with an unsupported extension (e.g. `config.yml5`, `quickwit.conf`, `config.txt`) to config loading (CLI `--config` flag, `quickwit serve`, or `load_config` variants).","commonSituations":"Renamed config files (e.g. `quickwit.yaml.bak` still being referenced); using `.conf` or `.cfg` out of habit; environment-variable-supplied paths with trailing junk; Windows-style `.yml.txt` double extensions from editor saves.","solutions":["Rename the file to use a supported extension: `.json`, `.toml`, `.yaml`, or `.yml`.","If the content is actually YAML, prefer `.yaml`; check for accidental double extensions like `.yaml.txt`.","Fix the path passed via `--config`/`QW_CONFIG` so it points to a correctly-named file."],"exampleFix":"// before\n./quickwit serve --config ./quickwit.conf\n// after\n./quickwit serve --config ./quickwit.yaml","handlingStrategy":"validation","validationCode":"const SUPPORTED: [&str; 4] = [\"json\", \"toml\", \"yaml\", \"yml\"];\nfn has_supported_config_ext(path: &std::path::Path) -> bool {\n    path.extension()\n        .and_then(|e| e.to_str())\n        .map(|e| SUPPORTED.contains(&e.to_ascii_lowercase().as_str()))\n        .unwrap_or(false)\n}","typeGuard":null,"tryCatchPattern":"// Rust\nmatch ConfigFormat::from_str(ext) {\n    Ok(fmt) => load_with(fmt),\n    Err(e) => { eprintln!(\"{e:#}\"); std::process::exit(1); }\n}","preventionTips":["Name config files quickwit.yaml (or .json/.toml) and never rename them for backups in referenced paths.","Check for double extensions like .yaml.txt, especially after editor saves on Windows.","Resolve the config path and verify its extension before invoking the CLI."],"tags":["config","file-format","quickwit","cli"],"backgroundTag":"unsupported-config-value","analyzedSha":"a39730c5cdcd1a4fe798403737ae293999ea21f8","analyzedAt":"2026-09-08T13:19:37.784Z","contentChangedAt":"2026-09-08T13:19:37.784Z","schemaVersion":2},"datasetVersion":"2026-09-14T11:17:12.474Z"}