influxdata/influxdb · error · ParquetFileProtoError
invalid object store ID
Error message
invalid object store ID: {0} What it means
Thrown when deserialising a protobuf-encoded ParquetFile (v1 catalog proto): a string field expected to identify an object store ID failed TryInto conversion into the strongly-typed ID. It is a generic validation guard on the inbound proto payload — the faulting input is the raw object-store ID string carried in the message; a proto serialized by a different or corrupted catalog version produces this error. Wrap around the decode of the ParquetFile proto, not around storage access.
Solutions
- Verify the catalog file or RPC payload is not truncated or corrupted
- Check that the writer and reader use compatible versions of the catalog proto schema
- Recover the object store ID from a known-good catalog snapshot or replica
Defensive patterns
Strategy: try-catch
When it happens
Trigger: Thrown at core/data_types/src/lib.rs:1309 when the library encounters an invalid state.
Common situations: See trigger scenarios.
AI-assisted analysis of influxdata/influxdb@06200ef96b (2026-09-19).
Data as JSON: /api/errors/4fe08a2bcb13f996.
Report an issue: GitHub.
Appendix: source
Thrown at core/data_types/src/lib.rs:1309
.try_into()
.map_err(|_| ProtoV1ParquetFileError::CompactionLevel)?,
created_at: Timestamp::new(v.created_at),
column_set: ColumnSet::new(v.column_set.into_iter().map(ColumnId::new)),
max_l0_created_at: Timestamp::new(v.max_l0_created_at),
source: ParquetFileSource::from_proto(v.source),
})
}
}
/// Errors deserialising a protobuf serialised [`ParquetFile`].
#[derive(Debug, Error)]
pub enum ParquetFileProtoError {
/// The proto type does not contain a partition ID.
#[error("no partition id specified for parquet file")]
NoPartitionId,
/// The specified object store UUID is invalid.
#[error("invalid object store ID: {0}")]
InvalidObjectStoreId(uuid::Error),
/// The specified compaction level value is invalid.
#[error(transparent)]
InvalidCompactionLevel(#[from] CompactionLevelProtoError),
}
/// Value for a `parquet_file` record's `max_l0_created_at` field. If `MaxL0CreatedAt::Computed`,
/// the value came from the computation of the maximum of the `created_at` attributes of the source
/// files compacted into this file. If `MaxL0CreatedAt::SameAsCreatedAt`, this file was not created
/// from other files (that is, it was created via ingest) and its `max_l0_created_at` field should
/// be set to the same value for `created_at` that the catalog will assign.
#[derive(Debug, Copy, Clone, PartialEq, Eq)]
pub enum MaxL0CreatedAt {
/// Value computed from max of source files' `created_at`
Computed(Timestamp),
/// No source files; this file was created by ingest (regular or bulk); use `created_at`View on GitHub (pinned to 06200ef96b)