{"record":{"id":"9aa5832635bdb22b","repo":"quickwit-oss/quickwit","slug":"timestamp-field-timestamp-field-path-should-be-9aa583","errorCode":null,"errorMessage":"timestamp field `{timestamp_field_path}` should be a fast field","messagePattern":"timestamp field `(.+?)` should be a fast field","errorType":"validation","errorClass":"anyhow::Error","httpStatus":null,"severity":"error","filePath":"quickwit/quickwit-doc-mapper/src/doc_mapper/doc_mapper_impl.rs","lineNumber":121,"sourceCode":"    mapping_root_node: &MappingNode,\n) -> anyhow::Result<()> {\n    if timestamp_field_path.starts_with('.') || timestamp_field_path.starts_with(\"\\\\.\") {\n        bail!(\"timestamp field `{timestamp_field_path}` should not start with a `.`\");\n    }\n    if timestamp_field_path.ends_with('.') {\n        bail!(\"timestamp field `{timestamp_field_path}` should not end with a `.`\");\n    }\n    let Some(timestamp_field_type) =\n        mapping_root_node.find_field_mapping_type(timestamp_field_path)\n    else {\n        bail!(\"could not find timestamp field `{timestamp_field_path}` in field mappings\");\n    };\n    if let FieldMappingType::DateTime(date_time_option, cardinality) = &timestamp_field_type {\n        if cardinality != &Cardinality::SingleValued {\n            bail!(\"timestamp field `{timestamp_field_path}` should be single-valued\");\n        }\n        if !date_time_option.fast {\n            bail!(\"timestamp field `{timestamp_field_path}` should be a fast field\");\n        }\n    } else {\n        bail!(\"timestamp field `{timestamp_field_path}` should be a datetime field\");\n    }\n    Ok(())\n}\n\nimpl From<DocMapper> for DocMapperBuilder {\n    fn from(default_doc_mapper: DocMapper) -> Self {\n        let partition_key_str = default_doc_mapper.partition_key.to_string();\n        let partition_key_opt: Option<String> = if !partition_key_str.is_empty() {\n            Some(partition_key_str)\n        } else {\n            None\n        };\n        let doc_mapping = DocMapping {\n            doc_mapping_uid: default_doc_mapper.doc_mapping_uid,\n            mode: default_doc_mapper.mode,","sourceCodeStart":103,"sourceCodeEnd":139,"githubUrl":"https://github.com/quickwit-oss/quickwit/blob/a39730c5cdcd1a4fe798403737ae293999ea21f8/quickwit/quickwit-doc-mapper/src/doc_mapper/doc_mapper_impl.rs#L103-L139","documentation":"For efficient range queries and pruning by time, the timestamp field must be stored as a fast (columnar) field. If the datetime field's `fast` option is false, `validate_timestamp_field` bails during DocMapper construction.","triggerScenarios":"Calling `DocMapperBuilder::try_from` with a timestamp_field whose datetime mapping sets `fast: false` (or omits the index-field-options making it non-fast).","commonSituations":"Users disabling fast fields to save disk space without realizing the timestamp field is required to be fast; copying field definitions from non-timestamp fields; older configs written before the fast requirement was enforced.","solutions":["Set `fast: true` in the datetime field's indexing options in the doc mapping.","Or pick another single-valued, fast datetime field as `timestamp_field`.","Note this changes the index schema: apply to new indexes or re-index existing data."],"exampleFix":"// before\ndoc_mapping:\n  field_mappings:\n    - name: ts\n      type: datetime\n      fast: false\n  timestamp_field: \"ts\"\n// after\ndoc_mapping:\n  field_mappings:\n    - name: ts\n      type: datetime\n      fast: true\n  timestamp_field: \"ts\"","handlingStrategy":"validation","validationCode":"const f = findField(cfg.doc_mapping.field_mappings, cfg.doc_mapping.timestamp_field);\nif (f && f.type === 'datetime' && f.fast !== true) {\n  throw new Error(`timestamp_field \"${f.name}\" must have fast: true`);\n}","typeGuard":null,"tryCatchPattern":"match DocMapperBuilder::try_from(config) {\n    Ok(dm) => Ok(dm),\n    Err(e) if e.to_string().contains(\"should be a fast field\") => Err(ConfigError::InvalidTimestampField(e.to_string())),\n    Err(e) => Err(e.into()),\n}","preventionTips":["Set fast: true on any field used as timestamp_field.","Never strip fast fields from the timestamp field to save space.","Include this check in index-config CI validation."],"tags":["doc-mapping","timestamp","fast-field","config-validation"],"backgroundTag":"invalid-config-value","analyzedSha":"a39730c5cdcd1a4fe798403737ae293999ea21f8","analyzedAt":"2026-09-08T13:19:37.784Z","contentChangedAt":"2026-09-08T13:19:37.784Z","schemaVersion":2},"datasetVersion":"2026-09-14T16:17:12.679Z"}