{"record":{"id":"2784bbb614c40477","repo":"vllm-project/vllm","slug":"messagepack-ext-value-decode-failed-message","errorCode":null,"errorMessage":"messagepack ext value decode failed: {message}","messagePattern":"messagepack ext value decode failed: (.+?)","errorType":"exception","errorClass":"Error","httpStatus":null,"severity":"error","filePath":"rust/src/engine-core-client/src/error.rs","lineNumber":29,"sourceCode":"\npub type Result<T> = std::result::Result<T, Error>;\n\n/// Public error type for the Rust engine-core client.\n#[derive(Debug, Error, Macro)]\npub enum Error {\n    #[error(\"messagepack encode failed for {target_type}: {message}\")]\n    Encode {\n        target_type: &'static str,\n        message: String,\n    },\n    #[error(\"messagepack decode failed for {target_type}: {message}\")]\n    Decode {\n        target_type: &'static str,\n        message: String,\n    },\n    #[error(\"messagepack value decode failed\")]\n    ValueDecode(#[from] rmpv::decode::Error),\n    #[error(\"messagepack ext value decode failed: {message}\")]\n    ExtValueDecode { message: String },\n    #[error(\"invalid structured outputs params: {message}\")]\n    InvalidStructuredOutputsParams { message: String },\n    #[error(\"io error\")]\n    Io(#[from] std::io::Error),\n    #[error(\"transport error\")]\n    Transport(#[from] zeromq::ZmqError),\n    #[error(\"ZMQ runtime task failed\")]\n    ZmqRuntimeTask(#[from] tokio::task::JoinError),\n    #[error(\"engine core reported fatal failure\")]\n    EngineCoreDead,\n    #[error(\"startup handshake timed out while waiting for {stage} after {timeout:?}\")]\n    HandshakeTimeout {\n        stage: &'static str,\n        timeout: Duration,\n    },\n    #[error(\"engine input registration timed out after {timeout:?}\")]\n    InputRegistrationTimeout { timeout: Duration },","sourceCodeStart":11,"sourceCodeEnd":47,"githubUrl":"https://github.com/vllm-project/vllm/blob/c794754062d49a8fdb63ab3c5215b488b865030c/rust/src/engine-core-client/src/error.rs#L11-L47","documentation":"Error::ExtValueDecode reports failure decoding a MessagePack extension value. Typed logprobs/structured-output payloads are encoded as MessagePack ext types; when the ext header or its payload cannot be decoded, the crate raises this variant with a free-form message (see usage in protocol/logprobs where tests assert on ExtValueDecode { message }).","triggerScenarios":"Decoding an engine output that embeds rmpv ext-encoded data (e.g. logprobs tensors) whose ext type tag or body does not match what the Rust decoder expects. Produced by the logprobs decoding paths exercised in protocol/logprobs/tests.rs:294-345.","commonSituations":"The Python engine changed how it packs a typed payload into an ext value (different type id, nesting, or endianness), or the payload is empty/garbage because the request asked for a feature the engine did not actually produce. Typically appears together with enabling logprobs or structured outputs across a version mismatch.","solutions":["Check message — it names the specific ext decode step that failed","Align Rust crate and vLLM engine versions so ext encodings match","If the request did not ask for logprobs/structured outputs but got ext payloads, audit the request flags sent","Add a regression test with the failing ext payload bytes"],"exampleFix":null,"handlingStrategy":"try-catch","validationCode":null,"typeGuard":"fn is_ext_value_decode(e: &engine_core_client::Error) -> bool {\n    matches!(e, engine_core_client::Error::ExtValueDecode { .. })\n}","tryCatchPattern":"match result {\n    Err(e @ engine_core_client::Error::ExtValueDecode { message }) => {\n        tracing::warn!(message, \"ext payload undecodable for this request\"); // per-request failure, client stays usable\n    }\n    other => other?,\n}","preventionTips":["Only request logprobs/structured outputs when the engine version matches the crate","Assert on ExtValueDecode in decode tests when adding new ext payloads (see logprobs tests)"],"tags":["rust","messagepack","logprobs","deserialization","version-skew"],"backgroundTag":null,"analyzedSha":"c794754062d49a8fdb63ab3c5215b488b865030c","analyzedAt":"2026-08-14T21:17:39.825Z","schemaVersion":2},"datasetVersion":"2026-08-15T22:17:37.221Z"}