{"record":{"id":"67a1d91af6d56608","repo":"vllm-project/vllm","slug":"data-parallel-rank-rank-is-not-connected-to-this","errorCode":null,"errorMessage":"data parallel rank {rank} is not connected to this frontend; connected ranks: {connected_ranks:?}","messagePattern":"data parallel rank (.+?) is not connected to this frontend; connected ranks: (.+?)","errorType":"validation","errorClass":"Error","httpStatus":null,"severity":"error","filePath":"rust/src/engine-core-client/src/error.rs","lineNumber":71,"sourceCode":"    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 },\n    #[error(\n        \"data parallel rank {rank} is not connected to this frontend; connected ranks: {connected_ranks:?}\"\n    )]\n    InvalidDataParallelRank {\n        rank: u32,\n        connected_ranks: Vec<u32>,\n    },\n    #[error(\"engine-core output dispatcher closed: {message}\")]\n    DispatcherClosed { message: String },\n    #[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    },","sourceCodeStart":53,"sourceCodeEnd":89,"githubUrl":"https://github.com/vllm-project/vllm/blob/c794754062d49a8fdb63ab3c5215b488b865030c/rust/src/engine-core-client/src/error.rs#L53-L89","documentation":"EngineCoreError::InvalidDataParallelRank is returned when the frontend is asked to route work to a data-parallel rank that has no connected engine-core behind it. The error lists the ranks that ARE connected, making the wiring mismatch directly visible.","triggerScenarios":"Creating an EngineCoreClient for data_parallel_rank = N when only ranks 0..K (K <= N) are connected; specifying data_parallel_size larger than the number of engine-core processes actually spawned/connected.","commonSituations":"data_parallel_size in engine config disagrees with the number of launched engine cores; a rank's engine process failed to start (so it never connected) while the frontend proceeds; bringing up partial DP clusters during testing.","solutions":["Match the requested rank against the connected_ranks listed in the error message","Ensure data_parallel_size equals the number of engine-core processes spawned/connected to this frontend","Check engine-core startup logs for the missing rank to find why it never connected (crash, wrong endpoint)"],"exampleFix":null,"handlingStrategy":"validation","validationCode":"// Validate rank before constructing the per-rank client\nlet connected = frontend.connected_dp_ranks();\nassert!(connected.contains(&rank), \"rank {rank} not in {connected:?}\");\nEngineCoreClient::for_dp_rank(rank, ...)","typeGuard":null,"tryCatchPattern":"if let Err(vllm_engine_core_client::Error::InvalidDataParallelRank { rank, connected_ranks }) = res {\n    return Err(anyhow::anyhow!(\"rank {rank} unavailable; connected: {connected_ranks:?}\"));\n}","preventionTips":["Derive per-rank client creation from the same config that sets data_parallel_size","Fail fast at startup if connected engine count != data_parallel_size","Log connected ranks on every new engine connection to catch partial wiring early"],"tags":["data-parallel","configuration","engine-core","rust"],"backgroundTag":null,"analyzedSha":"c794754062d49a8fdb63ab3c5215b488b865030c","analyzedAt":"2026-08-14T21:17:39.825Z","schemaVersion":2},"datasetVersion":"2026-08-15T22:17:37.221Z"}