{"record":{"id":"d062b438716b799c","repo":"vllm-project/vllm","slug":"external-coordinator-mode-is-not-implemented-yet","errorCode":null,"errorMessage":"external coordinator mode is not implemented yet","messagePattern":"external coordinator mode is not implemented yet","errorType":"exception","errorClass":"Error","httpStatus":null,"severity":"error","filePath":"rust/src/engine-core-client/src/error.rs","lineNumber":60,"sourceCode":"    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 },\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}\")]","sourceCodeStart":42,"sourceCodeEnd":78,"githubUrl":"https://github.com/vllm-project/vllm/blob/c794754062d49a8fdb63ab3c5215b488b865030c/rust/src/engine-core-client/src/error.rs#L42-L78","documentation":"Error::UnsupportedExternalCoordinator is returned by EngineCoreClient::connect (client.rs:241-243) when coordinator_mode is Some(CoordinatorMode::External { .. }) with TransportMode::HandshakeOwner. External coordinator support is simply not implemented yet in the Rust client, so the combination is rejected up front rather than half-working.","triggerScenarios":"Calling EngineCoreClient::connect with config.coordinator_mode = Some(CoordinatorMode::External { .. }) and transport_mode = TransportMode::HandshakeOwner. Note the check only exists on the HandshakeOwner arm; with TransportMode::Bootstrapped an External coordinator is silently ignored, which can mask the mistake.","commonSituations":"Porting a Python deployment that uses an external DP coordinator to the Rust frontend before support lands. Users assuming parity with Python vLLM's external coordinator feature. The error is deterministic — a capability gap, not an environment issue.","solutions":["Set coordinator_mode to None or Some(CoordinatorMode::InProc) for now","If external coordinator semantics are required, keep using the Python frontend until the Rust client implements it","Track the upstream rust-vllm frontend repository for External coordinator support and re-enable afterwards"],"exampleFix":"// before\ncoordinator_mode: Some(CoordinatorMode::External { address }),\n\n// after\ncoordinator_mode: Some(CoordinatorMode::InProc),","handlingStrategy":"validation","validationCode":"fn coordinator_mode_supported(mode: &Option<CoordinatorMode>) -> bool {\n    !matches!(mode, Some(CoordinatorMode::External { .. }))\n}","typeGuard":"fn is_unsupported_coordinator(e: &engine_core_client::Error) -> bool {\n    matches!(e, engine_core_client::Error::UnsupportedExternalCoordinator)\n}","tryCatchPattern":"match EngineCoreClient::connect(config).await {\n    Err(e @ engine_core_client::Error::UnsupportedExternalCoordinator) => {\n        tracing::error!(\"external coordinator not implemented; falling back to InProc\");\n        let config = config_with_coordinator(config, Some(CoordinatorMode::InProc));\n        EngineCoreClient::connect(config).await?\n    }\n    other => other?,\n}","preventionTips":["Check the capability matrix before selecting CoordinatorMode::External","Gate external-coordinator deployments behind a feature flag until implemented upstream","Note that with Bootstrapped transport the External mode is silently ignored — assert your config explicitly"],"tags":["rust","coordinator","not-implemented","configuration"],"backgroundTag":null,"analyzedSha":"c794754062d49a8fdb63ab3c5215b488b865030c","analyzedAt":"2026-08-14T21:17:39.825Z","schemaVersion":2},"datasetVersion":"2026-08-15T17:31:12.345Z"}