influxdata/influxdb · error · GrpcTimeoutParseError
The provided value was empty
Error message
The provided value was empty
What it means
Fired when parsing the gRPC `grpc-timeout` header into a GrpcTimeoutDuration and the header value is a zero-length string. It is a validation guard at the entry point that reads the header, so it fires for requests that set the header to an empty value rather than omitting it. The at-fault input is the empty `grpc-timeout` header value.
Solutions
- Send a non-empty `grpc-timeout` header, e.g. `grpc-timeout: 5S` or `100m`
- If the client cannot control headers, drop the header entirely and use the server default timeout
Defensive patterns
Strategy: validation
When it happens
Trigger: Thrown at core/data_types/src/lib.rs:2418 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/3fd9ee5ec685fbd4.
Report an issue: GitHub.
Appendix: source
Thrown at core/data_types/src/lib.rs:2418
Self {
min: point,
max: self.max,
cap: self.cap - cap1,
},
)
}
}
/// A duration pulled from the `grpc-timeout` header, newtype'd so we don't confuse durations at
/// some points and so that we can impl FromStr
#[derive(Debug, Copy, Clone)]
pub struct GrpcTimeoutDuration(pub Duration);
/// An error that can arise from trying to parse the `grpc-timeout` duration
#[derive(thiserror::Error, Debug)]
pub enum GrpcTimeoutParseError {
/// The header was empty
#[error("The provided value was empty")]
EmptyValue,
/// There were too many digits in the header before the suffix - the grpc spec specifies that
/// there must be no more than 8.
#[error(
"The provided value contained too many digits in the prefix; expected a maximum of 8 but got {0}"
)]
TooManyDigits(usize),
/// The value (number before the suffix) couldn't be parsed to a u64
#[error(
"Failed to parse the value; provided {value:?} and encountered the following error: {err}"
)]
UnparseableValue {
/// The value which we couldn't parse
value: String,
/// The error arising from the failure to parse
err: <u64 as FromStr>::Err,
},
/// The suffix which specifies the time base (e.g. seconds, hours, milliseconds, etc)View on GitHub (pinned to 06200ef96b)