{"record":{"id":"d519d4d9b3365eec","repo":"vllm-project/vllm","slug":"utility-call-method-returned-inconsistent-resu","errorCode":null,"errorMessage":"utility call `{method}` returned inconsistent results across engines: {values}","messagePattern":"utility call `(.+?)` returned inconsistent results across engines: (.+?)","errorType":"exception","errorClass":"Error","httpStatus":null,"severity":"warning","filePath":"rust/src/engine-core-client/src/error.rs","lineNumber":98,"sourceCode":"    #[error(\"engine-core client is closed: {message}\")]\n    ClientClosed { message: String },\n    #[error(\"request output stream for `{request_id}` closed unexpectedly\")]\n    RequestStreamClosed { request_id: String },\n    #[error(\"utility call `{method}` failed (call_id={call_id}): {message}\")]\n    UtilityCallFailed {\n        method: String,\n        call_id: UtilityCallId,\n        message: String,\n    },\n    #[error(\"utility call `{method}` returned an invalid result (call_id={call_id}): {message}\")]\n    UtilityResultDecode {\n        method: String,\n        call_id: UtilityCallId,\n        message: String,\n    },\n    #[error(\"utility call `{method}` closed unexpectedly (call_id={call_id})\")]\n    UtilityCallClosed { method: String, call_id: u64 },\n    #[error(\"utility call `{method}` returned inconsistent results across engines: {values}\")]\n    InconsistentUtilityResults { method: String, values: String },\n\n    /// A special variant to allow cloning the same error.\n    #[error(transparent)]\n    Shared(Arc<Self>),\n}\n","sourceCodeStart":80,"sourceCodeEnd":105,"githubUrl":"https://github.com/vllm-project/vllm/blob/c794754062d49a8fdb63ab3c5215b488b865030c/rust/src/engine-core-client/src/error.rs#L80-L105","documentation":"EngineCoreError::InconsistentUtilityResults is returned when a utility call is fanned out to multiple engines (e.g. data-parallel ranks) and they do not all return the same value, with `values` showing the per-engine results. The client refuses to pick one arbitrarily because utility results are expected to be identical across replicas.","triggerScenarios":"Running a utility call in a multi-engine (data-parallel) setup where per-engine state genuinely differs: engine-specific metrics, uninitialized engines, or one engine returning an error placeholder while others return values.","commonSituations":"Polling a stat that is inherently per-engine (cache usage, queue depth) through an API that expects uniformity; engines at different initialization stages; version skew making one engine serialize the value differently.","solutions":["Inspect the `values` string to see which engine(s) diverge and in what way","Wait until all engines/ranks are fully initialized before issuing the utility call","Use a per-engine utility interface instead of the uniform one for engine-local stats"],"exampleFix":null,"handlingStrategy":"fallback","validationCode":"// Wait until every DP rank reports ready before uniform utility calls\nwhile !all_engines_initialized(&client).await { tokio::time::sleep(Duration::from_millis(100)).await; }\nclient.utility_call(method, payload).await","typeGuard":"pub fn is_inconsistent_utility(e: &vllm_engine_core_client::Error) -> bool {\n    matches!(e, vllm_engine_core_client::Error::InconsistentUtilityResults { .. })\n}","tryCatchPattern":"match client.utility_call(method, payload).await {\n    Err(e @ vllm_engine_core_client::Error::InconsistentUtilityResults { values, .. }) => {\n        tracing::warn!(\"engines diverged ({values}); falling back to rank 0 query\");\n        client.utility_call_on_rank(0, method, payload).await\n    }\n    other => other,\n}","preventionTips":["Query per-engine stats through per-rank APIs instead of uniform ones","Ensure all ranks finish initialization before uniform queries","Log the values string to identify which engine diverges and why"],"tags":["data-parallel","utility-call","consistency","rust"],"backgroundTag":null,"analyzedSha":"c794754062d49a8fdb63ab3c5215b488b865030c","analyzedAt":"2026-08-14T21:17:39.825Z","schemaVersion":2},"datasetVersion":"2026-08-15T22:17:37.221Z"}