{"record":{"id":"3fd9ee5ec685fbd4","repo":"influxdata/influxdb","slug":"the-provided-value-was-empty","errorCode":null,"errorMessage":"The provided value was empty","messagePattern":"The provided value was empty","errorType":"validation","errorClass":"GrpcTimeoutParseError","httpStatus":null,"severity":"error","filePath":"core/data_types/src/lib.rs","lineNumber":2418,"sourceCode":"            Self {\n                min: point,\n                max: self.max,\n                cap: self.cap - cap1,\n            },\n        )\n    }\n}\n\n/// A duration pulled from the `grpc-timeout` header, newtype'd so we don't confuse durations at\n/// some points and so that we can impl FromStr\n#[derive(Debug, Copy, Clone)]\npub struct GrpcTimeoutDuration(pub Duration);\n\n/// An error that can arise from trying to parse the `grpc-timeout` duration\n#[derive(thiserror::Error, Debug)]\npub enum GrpcTimeoutParseError {\n    /// The header was empty\n    #[error(\"The provided value was empty\")]\n    EmptyValue,\n    /// There were too many digits in the header before the suffix - the grpc spec specifies that\n    /// there must be no more than 8.\n    #[error(\n        \"The provided value contained too many digits in the prefix; expected a maximum of 8 but got {0}\"\n    )]\n    TooManyDigits(usize),\n    /// The value (number before the suffix) couldn't be parsed to a u64\n    #[error(\n        \"Failed to parse the value; provided {value:?} and encountered the following error: {err}\"\n    )]\n    UnparseableValue {\n        /// The value which we couldn't parse\n        value: String,\n        /// The error arising from the failure to parse\n        err: <u64 as FromStr>::Err,\n    },\n    /// The suffix which specifies the time base (e.g. seconds, hours, milliseconds, etc)","sourceCodeStart":2400,"sourceCodeEnd":2436,"githubUrl":"https://github.com/influxdata/influxdb/blob/06200ef96ba82c5f6727e5038a83af8e722c6875/core/data_types/src/lib.rs#L2400-L2436","documentation":"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.","triggerScenarios":"Thrown at core/data_types/src/lib.rs:2418 when the library encounters an invalid state.","commonSituations":"See trigger scenarios.","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"],"exampleFix":null,"handlingStrategy":"validation","validationCode":null,"typeGuard":null,"tryCatchPattern":null,"preventionTips":[],"tags":[],"backgroundTag":null,"analyzedSha":"06200ef96ba82c5f6727e5038a83af8e722c6875","analyzedAt":"2026-09-19T12:55:30.003Z","contentChangedAt":"2026-09-19T12:55:30.003Z","schemaVersion":2},"datasetVersion":"2026-09-23T08:17:48.524Z"}