Skip to content

Problems with IngestV2 on existing indexes after Update Quickwit from 0.8 to 0.9 #6691

Description

@chsuhr

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:

  1. Create Indexes with Quickwit 0.8 and ingest data.
  2. 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:

  1. Output of quickwit --version --> Quickwit 0.9.0 (aarch64-unknown-linux-gnu 2026-07-25T17:48:09Z cc420c3

  2. AWS EKS 1.35, Quickwit helmchart 0.8.14, AWS RDS Postgres 16.13 Metastore

  3. one Indexer and Searcher Node

  4. Ingest with vector.dev

  5. The index_config.yaml

I got an error (Failed to upload ), if i try to upload the index config yaml to github

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugSomething isn't working

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions