influxdata/influxdb · error · GrpcTimeoutParseError
Failed to parse the value; provided
Error message
Failed to parse the value; provided {value:?} and encountered the following error: {err} What it means
GrpcTimeoutParseError::UnparseableValue, fired when the numeric part of the `grpc-timeout` header cannot be parsed as a u64; the header carried a malformed or overflowing number before the unit suffix.
Solutions
- Ensure the value before the suffix is a plain non-negative integer that fits in u64
- Strip whitespace or stray characters from the header value
- Log the captured `value` field to identify the malformed header source
Defensive patterns
Strategy: validation
When it happens
Trigger: Thrown at core/data_types/src/lib.rs:2427 when the library encounters an invalid state.
Common situations: See trigger scenarios.
Understand the failure class
- Parsing and encoding errors: unexpected token, malformed input — why parsers reject input and how to find the real culprit.
AI-assisted analysis of influxdata/influxdb@06200ef96b (2026-09-19).
Data as JSON: /api/errors/c94fa35c31641f11.
Report an issue: GitHub.
Appendix: source
Thrown at core/data_types/src/lib.rs:2427
/// 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)
#[error("The value contained an unrecognized suffic of {0:?}")]
UnrecognizedSuffix(String),
}
impl FromStr for GrpcTimeoutDuration {
type Err = GrpcTimeoutParseError;
fn from_str(val: &str) -> Result<Self, Self::Err> {
if val.is_empty() {
return Err(GrpcTimeoutParseError::EmptyValue);View on GitHub (pinned to 06200ef96b)