quickwit-oss/quickwit · error
`index_id` in config file {} does not match updated `index_i
Error message
`index_id` in config file {} does not match updated `index_id` {} What it means
This error is thrown by `load_index_config_update` in quickwit-config when applying a config-file update to an existing index. Quickwit parses the new index config from user-provided bytes and then checks that the `index_id` in the new file is identical to the `index_id` of the currently stored index config. Since the index identity cannot change through an update (the index is addressed by its `index_id`), any mismatch is rejected with this message showing both values.
Source
Thrown at quickwit/quickwit-config/src/index_config/serialize.rs:80
}
/// Parses and validates an [`IndexConfig`] update.
///
/// Ensures that the new configuration is valid in itself and compared to the
/// current index config. If the new configuration omits some fields, the
/// default values will be used, not those of the current index config.
pub fn load_index_config_update(
config_format: ConfigFormat,
index_config_bytes: &[u8],
default_index_root_uri: &Uri,
current_index_config: &IndexConfig,
) -> anyhow::Result<IndexConfig> {
let mut new_index_config = load_index_config_from_user_config(
config_format,
index_config_bytes,
default_index_root_uri,
)?;
ensure!(
current_index_config.index_id == new_index_config.index_id,
"`index_id` in config file {} does not match updated `index_id` {}",
current_index_config.index_id,
new_index_config.index_id
);
ensure!(
current_index_config.index_uri == new_index_config.index_uri,
"`index_uri` cannot be updated, current value {}, new expected value {}",
current_index_config.index_uri,
new_index_config.index_uri
);
let (updated_doc_mapping, _mutation_occurred) = prepare_doc_mapping_update(
new_index_config.doc_mapping,
¤t_index_config.doc_mapping,
&new_index_config.search_settings,
)?;
new_index_config.doc_mapping = updated_doc_mapping;
View on GitHub (pinned to a39730c5cd)
Solutions
- Set the `index_id` field in the config file to exactly match the current index's `index_id`
- If you actually intend to rename, delete the old index and create a new one instead of updating
- Re-generate the config from the current index metadata (`GET /_index/{index_id}` style) to guarantee the id matches
Example fix
// before index_id: my-renamed-index // after index_id: my-index
Defensive patterns
Strategy: validation
Validate before calling
fn ensure_index_id_unchanged(current: &str, new_config: &str) -> anyhow::Result<()> {
let new_id = extract_index_id(new_config)?; // parse your YAML/JSON to the index_id field
if new_id != current {
anyhow::bail!(
"config index_id `{new_id}` does not match index being updated `{current}`"
);
}
Ok(())
} Try / catch
match load_index_config_update(...) {
Err(e) if e.to_string().contains("does not match updated `index_id`") => {
eprintln!("Fix index_id in your config file to match the target index.");
}
other => other?,
} Prevention
- Fetch the current index config and edit only the fields you intend to change, keeping index_id intact
- Never edit index_id to rename an index — create a new index instead
- Template-render configs and assert the rendered index_id equals the target before calling update
When it happens
Trigger: Calling `update_index` (REST/gRPC metadata update path) or `load_index_config_update` directly with index config YAML/JSON/TOML whose `index_id` field differs from the current index's `index_id`.
Common situations: Copy-pasting an index config from another index and forgetting to update `index_id`; renaming an index by editing `index_id` in the config instead of creating a new index; templated configs where the id is substituted incorrectly.
Related errors
- `desired_num_pipelines` must be strictly positive
- shard_burst_limit ({}) must be at least 1.5*content_length_l
- index ID pattern `{pattern}` is invalid: patterns must not c
- index ID pattern `{pattern}` is invalid: an index ID must ha
- index config merge policy `max_merge_factor` must be superio
AI-assisted analysis of quickwit-oss/quickwit@a39730c5cd (2026-09-08).
Data as JSON: /api/errors/b1b1dfe3cfc73fc3.
Report an issue: GitHub.