{"record":{"id":"6ce36283a3e5b427","repo":"vllm-project/vllm","slug":"unexpected-non-control-output-on-coordinator-path","errorCode":null,"errorMessage":"unexpected non-control output on coordinator path: {message}","messagePattern":"unexpected non-control output on coordinator path: (.+?)","errorType":"exception","errorClass":"Error","httpStatus":null,"severity":"error","filePath":"rust/src/engine-core-client/src/error.rs","lineNumber":52,"sourceCode":"    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 },\n    #[error(\"unexpected engine id in startup handshake: expected {expected:?}, got {actual:?}\")]\n    UnexpectedHandshakeIdentity { expected: Vec<u8>, actual: Vec<u8> },\n    #[error(\"unexpected startup handshake message: {message}\")]\n    UnexpectedHandshakeMessage { message: String },\n    #[error(\"unexpected non-control output on coordinator path: {message}\")]\n    UnexpectedCoordinatorOutput { message: String },\n    #[error(\"unexpected output on main dispatcher path: {message}\")]\n    UnexpectedDispatcherOutput { message: String },\n    #[error(\"coordinator requires a Python-compatible two-byte engine id, got {engine_id:?}\")]\n    UnsupportedCoordinatorEngineId { engine_id: Vec<u8> },\n    #[error(\"unsupported auxiliary frame(s): expected 1 frame, got {frame_count}\")]\n    UnsupportedAuxFrames { frame_count: usize },\n    #[error(\"external coordinator mode is not implemented yet\")]\n    UnsupportedExternalCoordinator,\n    #[error(\"unsupported field `{field}` in {context}\")]\n    UnsupportedField {\n        context: &'static str,\n        field: &'static str,\n    },\n    #[error(\"engine control channel closed unexpectedly: {message}\")]\n    ControlClosed { message: String },\n    #[error(\"request `{request_id}` is already in flight\")]\n    DuplicateRequestId { request_id: String },","sourceCodeStart":34,"sourceCodeEnd":70,"githubUrl":"https://github.com/vllm-project/vllm/blob/c794754062d49a8fdb63ab3c5215b488b865030c/rust/src/engine-core-client/src/error.rs#L34-L70","documentation":"Error::UnexpectedCoordinatorOutput is raised inside the in-process and external coordinator loops (coordinator/inproc.rs:169, coordinator/external.rs:116 via bail_unexpected_coordinator_output!) when a message arriving on the dedicated coordinator control path is not an engine control output the coordinator state machine understands.","triggerScenarios":"Running with CoordinatorMode::InProc (or External) and the coordinator socket receives a frame that is not a valid engine control message — e.g. a normal generation output routed to the coordinator socket by mistake, or a malformed/unrecognized control frame from an engine speaking a different protocol version.","commonSituations":"Version mismatch between the coordinator protocol implemented in Rust and the engine's control-message format; misconfigured engine sending request outputs on the coordinator output address; leftover/wrong process connected to the coordinator socket. Indicates traffic-classification failure, not a transient network issue.","solutions":["Read message for the frame contents/class that failed classification","Verify the coordinator input/output addresses in the INIT message match what engines were configured with","Align engine and Rust frontend versions (coordinator protocol evolves with the codebase)","Ensure no other service can reach the coordinator output socket (bind to the intended interface only)"],"exampleFix":null,"handlingStrategy":"try-catch","validationCode":null,"typeGuard":"fn is_coordinator_output_error(e: &engine_core_client::Error) -> bool {\n    matches!(e, engine_core_client::Error::UnexpectedCoordinatorOutput { .. })\n}","tryCatchPattern":"if let engine_core_client::Error::UnexpectedCoordinatorOutput { message } = &err {\n    tracing::error!(message, \"non-control traffic on coordinator path; fatal for coordinator session\");\n}","preventionTips":["Give coordinator sockets dedicated addresses; never point request output traffic at them","Bind coordinator sockets to interfaces only engines can reach","Keep coordinator protocol versions aligned between engine and frontend"],"tags":["rust","coordinator","protocol","routing"],"backgroundTag":null,"analyzedSha":"c794754062d49a8fdb63ab3c5215b488b865030c","analyzedAt":"2026-08-14T21:17:39.825Z","schemaVersion":2},"datasetVersion":"2026-08-15T22:17:37.221Z"}