{"record":{"id":"842b78892ea688dd","repo":"vllm-project/vllm","slug":"multimodal-preprocessing-error-0","errorCode":null,"errorMessage":"multimodal preprocessing error: {0}","messagePattern":"multimodal preprocessing error: (.+?)","errorType":"exception","errorClass":"Error","httpStatus":null,"severity":"error","filePath":"rust/src/chat/src/error.rs","lineNumber":28,"sourceCode":"#[thiserror_ext(macro(path = \"crate::error\"))]\npub enum Error {\n    #[error(\"chat request must contain at least one message\")]\n    EmptyMessages,\n    #[error(\"cannot continue the final message when the last message is not from the assistant\")]\n    ContinueFinalAssistantWithoutFinalAssistant,\n    #[error(\"chat template is required but none was configured\")]\n    MissingChatTemplate,\n    #[error(\"chat template error: {0}\")]\n    ChatTemplate(String),\n    #[error(\"multimodal input is not supported by this chat renderer\")]\n    UnsupportedMultimodalRenderer,\n    #[error(\"unsupported multimodal content: {0}\")]\n    UnsupportedMultimodalContent(&'static str),\n    #[error(\"`{modality}` input is not supported by this model\")]\n    UnsupportedModality { modality: String },\n    #[error(\"At most {limit} {modality}(s) may be provided in one prompt.\")]\n    MmLimitExceeded { modality: String, limit: usize },\n    #[error(\"multimodal preprocessing error: {0}\")]\n    Multimodal(#[message] String),\n    #[error(\"{kind} parsing is not available for model `{model_id}`\")]\n    ParserUnavailableForModel {\n        kind: &'static str,\n        model_id: String,\n    },\n    #[error(\"{kind} parsing is disabled by frontend configuration\")]\n    ParserDisabled { kind: &'static str },\n    #[error(\n        \"{kind} parser `{name}` is not registered{}\",\n        available_parser_hint(.available_names)\n    )]\n    ParserUnavailableByName {\n        kind: &'static str,\n        name: String,\n        available_names: Vec<String>,\n    },\n    #[error(\"failed to initialize {kind} parser `{name}`\")]","sourceCodeStart":10,"sourceCodeEnd":46,"githubUrl":"https://github.com/vllm-project/vllm/blob/c794754062d49a8fdb63ab3c5215b488b865030c/rust/src/chat/src/error.rs#L10-L46","documentation":"EplbState tracks MoE model configuration across all registered models. When a new model is added, its expert-parallel layout (num_routed_experts, num_redundant_experts, num_physical_experts, num_logical_experts, num_expert_groups) must match the first registered model. A mismatch means EPLB cannot share the same physical expert redistribution plan across models.","triggerScenarios":"Registering a second MoE model into EplbState with a different expert count, redundancy, or grouping than an already-registered model — e.g. mixing two different MoE architectures in one EPLB-managed deployment.","commonSituations":"Serving heterogeneous MoE models under one EPLB state; loading a model with a different redundant-experts setting; config drift after changing eplb redundancy parameters for one model only.","solutions":["Use models with identical expert-parallel configuration (same routed/redundant/physical/logical expert counts and expert groups)","If different models must be served, give each its own EplbState instead of sharing one","Re-check num_redundant_experts / EPLB config so both models are built with the same physical expert layout"],"exampleFix":null,"handlingStrategy":"validation","validationCode":"ref = next(iter(state.model_states.values())).model\nsame = (ref.num_routed_experts == new.num_routed_experts\n        and ref.num_redundant_experts == new.num_redundant_experts\n        and ref.num_physical_experts == new.num_physical_experts\n        and ref.num_logical_experts == new.num_logical_experts\n        and ref.num_expert_groups == new.num_expert_groups)\nassert same, 'expert layout differs from already-registered model'","typeGuard":null,"tryCatchPattern":null,"preventionTips":["Share one EplbState only across models with identical expert layouts","Assert expert-config equality at model registration time with a clear message"],"tags":["eplb","model-config","moe","vllm"],"backgroundTag":null,"analyzedSha":"c794754062d49a8fdb63ab3c5215b488b865030c","analyzedAt":"2026-08-14T21:17:39.825Z","schemaVersion":2},"datasetVersion":"2026-08-15T22:17:37.221Z"}