{"record":{"id":"cea37c66494f0b8a","repo":"influxdata/influxdb","slug":"the-value-contained-an-unrecognized-suffic-of-0","errorCode":null,"errorMessage":"The value contained an unrecognized suffic of {0:?}","messagePattern":"The value contained an unrecognized suffic of (.+?)","errorType":"validation","errorClass":"GrpcTimeoutParseError","httpStatus":null,"severity":"error","filePath":"core/data_types/src/lib.rs","lineNumber":2437,"sourceCode":"    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)\n    #[error(\"The value contained an unrecognized suffic of {0:?}\")]\n    UnrecognizedSuffix(String),\n}\n\nimpl FromStr for GrpcTimeoutDuration {\n    type Err = GrpcTimeoutParseError;\n    fn from_str(val: &str) -> Result<Self, Self::Err> {\n        if val.is_empty() {\n            return Err(GrpcTimeoutParseError::EmptyValue);\n        }\n\n        let (timeout_value, timeout_unit) = val\n            // `HeaderValue::to_str` only returns `Ok` if the header contains ASCII so this\n            // `split_at` will never panic from trying to split in the middle of a character.\n            // See https://docs.rs/http/1/http/header/struct.HeaderValue.html#method.to_str\n            //\n            // `len - 1` also wont panic since we just checked `s.is_empty`.\n            .split_at(val.len() - 1);\n","sourceCodeStart":2419,"sourceCodeEnd":2455,"githubUrl":"https://github.com/influxdata/influxdb/blob/06200ef96ba82c5f6727e5038a83af8e722c6875/core/data_types/src/lib.rs#L2419-L2455","documentation":"Fired when parsing the gRPC `grpc-timeout` header: the numeric prefix parsed fine but the trailing unit suffix is not one of the gRPC spec's recognized duration units (H, M, S, m, u, n). This is a validation guard over the header string; the offending input is the unrecognized suffix carried in the error payload. Happens for clients emitting non-spec timeout units.","triggerScenarios":"Thrown at core/data_types/src/lib.rs:2437 when the library encounters an invalid state.","commonSituations":"See trigger scenarios.","solutions":["Use one of the valid suffixes: H (hours), M (minutes), S (seconds), m (millis), u (micros), n (nanos)","Fix the client/intermediary that is emitting a non-standard unit"],"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"}