Describe the bug
A clear and concise description of what the bug is.
After Upgrade Quickwit to Version 0.9, ingestv2 has problems with existing indexes.
Before the update stopped ingest and created the backups of the metastore (RDS Postgres)
The Update itself was executed like described in the Upgrade Guide and didn't show any errors.
We use Vector.dev to do the log ingest and transformation.
After start ingest again we got errors like this from quickwit:
2026-08-13T14:06:01.781Z INFO index-doc-batches{index_id=aws-r53-vpc-dns-logs-v0_7 source_id=_ingest-source pipeline_uid=01KZXPHNWDJPX3V6HM3THZGWC8 workbench_id=01KZXQ1KAVA6XBGE6N4ADD0BYV}:publisher{split_update=SplitsUpdate { index_id: "aws-r53-vpc-dns-logs-v0_7", new_splits: "01KZXQ1KAXR1EZVZTFZK85MGKR", checkpoint_delta: Some(_ingest-source:∆(01KZXPHNW5G7S9VJZ6HPZDHSN
M:(00000000000000156859..00000000000000165480])) }}: quickwit_indexing::actors::log_publisher_impl: publish-new-splits num_splits=1 num_docs=8621 split_size_bytes=655075
2026-08-13T14:06:02.725Z INFO ingest.ingester.truncate_shards:ingester.truncate_shard: quickwit_ingest::ingest_v2::state: truncated shard aws-r53-vpc-dns-logs-v0_7:01JT0KZ21XHVHWT520FMCGS5NK/_ingest-source/01KZXPHNW5G7S9VJZ6HPZDHSNM at 00000000000000165480 initiated via indexer RPC
2026-08-13T14:06:54.508Z ERROR http_request{otel.kind="Server" http.request.method=POST url.path=/api/v1/aws-cloudtrail-logs-v0_7/ingest}:ingest.router.ingest{commit_type=1}:ingest.ingester.persist{leader_id=prod-quickwit-indexer-0 commit_type=1}:ingester.validate_doc_batch{num_docs=5350 num_bytes=10020192}: quickwit_ingest::ingest_v2::doc_mapper: failed to validate JSON document: the document must contain field "timestamp field is required" num_suppressed=173405
2026-08-13T14:06:54.508Z ERROR http_request{otel.kind="Server" http.request.method=POST url.path=/api/v1/aws-cloudtrail-logs-v0_7/ingest}:ingest.router.ingest{commit_type=1}:ingest.ingester.persist{leader_id=prod-quickwit-indexer-0 commit_type=1}:ingester.validate_doc_batch{num_docs=5350 num_bytes=10020192}: quickwit_ingest::ingest_v2::doc_mapper: failed to validate JSON document: the document must contain field "timestamp field is required"
2026-08-13T14:06:54.508Z ERROR http_request{otel.kind="Server" http.request.method=POST url.path=/api/v1/aws-cloudtrail-logs-v0_7/ingest}:ingest.router.ingest{commit_type=1}:ingest.ingester.persist{leader_id=prod-quickwit-indexer-0 commit_type=1}:ingester.validate_doc_batch{num_docs=5350 num_bytes=10020192}: quickwit_ingest::ingest_v2::doc_mapper: failed to validate JSON document: the document must contain field "timestamp field is required"
2026-08-13T14:06:54.508Z ERROR http_request{otel.kind="Server" http.request.method=POST url.path=/api/v1/aws-cloudtrail-logs-v0_7/ingest}:ingest.router.ingest{commit_type=1}:ingest.ingester.persist{leader_id=prod-quickwit-indexer-0 commit_type=1}:ingester.validate_doc_batch{num_docs=5350 num_bytes=10020192}: quickwit_ingest::ingest_v2::doc_mapper: failed to validate JSON document: the document must contain field "timestamp field is required"
2026-08-13T14:06:54.508Z ERROR http_request{otel.kind="Server" http.request.method=POST url.path=/api/v1/aws-cloudtrail-logs-v0_7/ingest}:ingest.router.ingest{commit_type=1}:ingest.ingester.persist{leader_id=prod-quickwit-indexer-0 commit_type=1}:ingester.validate_doc_batch{num_docs=5350 num_bytes=10020192}: quickwit_ingest::ingest_v2::doc_mapper: failed to validate JSON document: the document must contain field "timestamp field is required"
2026-08-13T14:06:54.508Z ERROR http_request{otel.kind="Server" http.request.method=POST url.path=/api/v1/aws-cloudtrail-logs-v0_7/ingest}:ingest.router.ingest{commit_type=1}:ingest.ingester.persist{leader_id=prod-quickwit-indexer-0 commit_type=1}:ingester.validate_doc_batch{num_docs=5350 num_bytes=10020192}: quickwit_ingest::ingest_v2::doc_mapper: failed to validate JSON document: the document must contain field "timestamp field is required"
Or:
2026-08-13T14:42:57.228Z ERROR http_request{otel.kind="Server" http.request.method=POST url.path=/api/v1/aws-vpcflowlogs-v5-v0_7/ingest}:ingest.router.ingest{commit_type=1}:ingest.ingester.persist{leader_id=prod-quickwit-indexer-0 commit_type=1}:ingester.validate_doc_batch{num_docs=11496 num_bytes=8012859}: quickwit_ingest::ingest_v2::doc_mapper: failed to validate JSON document: the field version could not be parsed: expected string, got 5
2026-08-13T14:42:57.228Z ERROR http_request{otel.kind="Server" http.request.method=POST url.path=/api/v1/aws-vpcflowlogs-v5-v0_7/ingest}:ingest.router.ingest{commit_type=1}:ingest.ingester.persist{leader_id=prod-quickwit-indexer-0 commit_type=1}:ingester.validate_doc_batch{num_docs=11496 num_bytes=8012859}: quickwit_ingest::ingest_v2::doc_mapper: failed to validate JSON document: the field version could not be parsed: expected string, got 5
The log format hasnt changed and the fields mentioned in the errors are defined in the index config.
The cloudtrail index is type dynamic and the vpcflowlogs is type strict
We couldnt ingest any data until we forced quickwit to use ingestv1 by adding the "?use_legacy_ingest=true" to the vector sink.
qw_aws_cloudtrail:
type: http
method: post
inputs:
- split_cloudtrail
encoding:
codec: "json"
framing:
method: "newline_delimited"
uri: "http://prod-quickwit-indexer.quickwit.svc.cluster.local:7280/api/v1/aws-cloudtrail-logs-v0_7/ingest?use_legacy_ingest=true"
Then those error messages were gone and we were able to ingest again.
Steps to reproduce (if applicable)
Steps to reproduce the behavior:
- Create Indexes with Quickwit 0.8 and ingest data.
- Upgrade Quickwit to 0.9 and ingest data with now default IngestV2 API
Expected behavior
A clear and concise description of what you expected to happen.
existing Indexes work with Ingestv2 and quickwit 0.9 as well after Upgrade.
Configuration:
Please provide:
-
Output of quickwit --version --> Quickwit 0.9.0 (aarch64-unknown-linux-gnu 2026-07-25T17:48:09Z cc420c3
-
AWS EKS 1.35, Quickwit helmchart 0.8.14, AWS RDS Postgres 16.13 Metastore
-
one Indexer and Searcher Node
-
Ingest with vector.dev
-
The index_config.yaml
I got an error (Failed to upload ), if i try to upload the index config yaml to github
Describe the bug
A clear and concise description of what the bug is.
After Upgrade Quickwit to Version 0.9, ingestv2 has problems with existing indexes.
Before the update stopped ingest and created the backups of the metastore (RDS Postgres)
The Update itself was executed like described in the Upgrade Guide and didn't show any errors.
We use Vector.dev to do the log ingest and transformation.
After start ingest again we got errors like this from quickwit:
2026-08-13T14:06:01.781Z INFO index-doc-batches{index_id=aws-r53-vpc-dns-logs-v0_7 source_id=_ingest-source pipeline_uid=01KZXPHNWDJPX3V6HM3THZGWC8 workbench_id=01KZXQ1KAVA6XBGE6N4ADD0BYV}:publisher{split_update=SplitsUpdate { index_id: "aws-r53-vpc-dns-logs-v0_7", new_splits: "01KZXQ1KAXR1EZVZTFZK85MGKR", checkpoint_delta: Some(_ingest-source:∆(01KZXPHNW5G7S9VJZ6HPZDHSN
M:(00000000000000156859..00000000000000165480])) }}: quickwit_indexing::actors::log_publisher_impl: publish-new-splits num_splits=1 num_docs=8621 split_size_bytes=655075
2026-08-13T14:06:02.725Z INFO ingest.ingester.truncate_shards:ingester.truncate_shard: quickwit_ingest::ingest_v2::state: truncated shard
aws-r53-vpc-dns-logs-v0_7:01JT0KZ21XHVHWT520FMCGS5NK/_ingest-source/01KZXPHNW5G7S9VJZ6HPZDHSNMat 00000000000000165480 initiated viaindexer RPC2026-08-13T14:06:54.508Z ERROR http_request{otel.kind="Server" http.request.method=POST url.path=/api/v1/aws-cloudtrail-logs-v0_7/ingest}:ingest.router.ingest{commit_type=1}:ingest.ingester.persist{leader_id=prod-quickwit-indexer-0 commit_type=1}:ingester.validate_doc_batch{num_docs=5350 num_bytes=10020192}: quickwit_ingest::ingest_v2::doc_mapper: failed to validate JSON document: the document must contain field "timestamp field is required" num_suppressed=173405
2026-08-13T14:06:54.508Z ERROR http_request{otel.kind="Server" http.request.method=POST url.path=/api/v1/aws-cloudtrail-logs-v0_7/ingest}:ingest.router.ingest{commit_type=1}:ingest.ingester.persist{leader_id=prod-quickwit-indexer-0 commit_type=1}:ingester.validate_doc_batch{num_docs=5350 num_bytes=10020192}: quickwit_ingest::ingest_v2::doc_mapper: failed to validate JSON document: the document must contain field "timestamp field is required"
2026-08-13T14:06:54.508Z ERROR http_request{otel.kind="Server" http.request.method=POST url.path=/api/v1/aws-cloudtrail-logs-v0_7/ingest}:ingest.router.ingest{commit_type=1}:ingest.ingester.persist{leader_id=prod-quickwit-indexer-0 commit_type=1}:ingester.validate_doc_batch{num_docs=5350 num_bytes=10020192}: quickwit_ingest::ingest_v2::doc_mapper: failed to validate JSON document: the document must contain field "timestamp field is required"
2026-08-13T14:06:54.508Z ERROR http_request{otel.kind="Server" http.request.method=POST url.path=/api/v1/aws-cloudtrail-logs-v0_7/ingest}:ingest.router.ingest{commit_type=1}:ingest.ingester.persist{leader_id=prod-quickwit-indexer-0 commit_type=1}:ingester.validate_doc_batch{num_docs=5350 num_bytes=10020192}: quickwit_ingest::ingest_v2::doc_mapper: failed to validate JSON document: the document must contain field "timestamp field is required"
2026-08-13T14:06:54.508Z ERROR http_request{otel.kind="Server" http.request.method=POST url.path=/api/v1/aws-cloudtrail-logs-v0_7/ingest}:ingest.router.ingest{commit_type=1}:ingest.ingester.persist{leader_id=prod-quickwit-indexer-0 commit_type=1}:ingester.validate_doc_batch{num_docs=5350 num_bytes=10020192}: quickwit_ingest::ingest_v2::doc_mapper: failed to validate JSON document: the document must contain field "timestamp field is required"
2026-08-13T14:06:54.508Z ERROR http_request{otel.kind="Server" http.request.method=POST url.path=/api/v1/aws-cloudtrail-logs-v0_7/ingest}:ingest.router.ingest{commit_type=1}:ingest.ingester.persist{leader_id=prod-quickwit-indexer-0 commit_type=1}:ingester.validate_doc_batch{num_docs=5350 num_bytes=10020192}: quickwit_ingest::ingest_v2::doc_mapper: failed to validate JSON document: the document must contain field "timestamp field is required"
Or:
2026-08-13T14:42:57.228Z ERROR http_request{otel.kind="Server" http.request.method=POST url.path=/api/v1/aws-vpcflowlogs-v5-v0_7/ingest}:ingest.router.ingest{commit_type=1}:ingest.ingester.persist{leader_id=prod-quickwit-indexer-0 commit_type=1}:ingester.validate_doc_batch{num_docs=11496 num_bytes=8012859}: quickwit_ingest::ingest_v2::doc_mapper: failed to validate JSON document: the field
versioncould not be parsed: expected string, got52026-08-13T14:42:57.228Z ERROR http_request{otel.kind="Server" http.request.method=POST url.path=/api/v1/aws-vpcflowlogs-v5-v0_7/ingest}:ingest.router.ingest{commit_type=1}:ingest.ingester.persist{leader_id=prod-quickwit-indexer-0 commit_type=1}:ingester.validate_doc_batch{num_docs=11496 num_bytes=8012859}: quickwit_ingest::ingest_v2::doc_mapper: failed to validate JSON document: the field
versioncould not be parsed: expected string, got5The log format hasnt changed and the fields mentioned in the errors are defined in the index config.
The cloudtrail index is type dynamic and the vpcflowlogs is type strict
We couldnt ingest any data until we forced quickwit to use ingestv1 by adding the "?use_legacy_ingest=true" to the vector sink.
Then those error messages were gone and we were able to ingest again.
Steps to reproduce (if applicable)
Steps to reproduce the behavior:
Expected behavior
A clear and concise description of what you expected to happen.
existing Indexes work with Ingestv2 and quickwit 0.9 as well after Upgrade.
Configuration:
Please provide:
Output of
quickwit --version--> Quickwit 0.9.0 (aarch64-unknown-linux-gnu 2026-07-25T17:48:09Z cc420c3AWS EKS 1.35, Quickwit helmchart 0.8.14, AWS RDS Postgres 16.13 Metastore
one Indexer and Searcher Node
Ingest with vector.dev
The index_config.yaml
I got an error (Failed to upload ), if i try to upload the index config yaml to github