vllm-project/vllm · error · Error
`{modality}` input is not supported by this model
Error message
`{modality}` input is not supported by this model What it means
The NixlEplbCommunicator constructor raised {exc}; the factory wraps and chains it. The underlying failure is usually inside agent creation, descriptor registration, or an assertion on empty weights/buffers (the constructor asserts non-empty all_expert_weights and expert_buffer).
Source
Thrown at rust/src/chat/src/error.rs:24
type BoxedError = Box<dyn std::error::Error + Send + Sync>;
#[derive(Debug, Error, Macro)]
#[thiserror_ext(macro(path = "crate::error"))]
pub enum Error {
#[error("chat request must contain at least one message")]
EmptyMessages,
#[error("cannot continue the final message when the last message is not from the assistant")]
ContinueFinalAssistantWithoutFinalAssistant,
#[error("chat template is required but none was configured")]
MissingChatTemplate,
#[error("chat template error: {0}")]
ChatTemplate(String),
#[error("multimodal input is not supported by this chat renderer")]
UnsupportedMultimodalRenderer,
#[error("unsupported multimodal content: {0}")]
UnsupportedMultimodalContent(&'static str),
#[error("`{modality}` input is not supported by this model")]
UnsupportedModality { modality: String },
#[error("At most {limit} {modality}(s) may be provided in one prompt.")]
MmLimitExceeded { modality: String, limit: usize },
#[error("multimodal preprocessing error: {0}")]
Multimodal(#[message] String),
#[error("{kind} parsing is not available for model `{model_id}`")]
ParserUnavailableForModel {
kind: &'static str,
model_id: String,
},
#[error("{kind} parsing is disabled by frontend configuration")]
ParserDisabled { kind: &'static str },
#[error(
"{kind} parser `{name}` is not registered{}",
available_parser_hint(.available_names)
)]
ParserUnavailableByName {
kind: &'static str,View on GitHub (pinned to c794754062)
Solutions
- Check the chained exception text for the specific failing step — the factory re-raises the original cause
- Confirm all_expert_weights and expert_buffer are non-empty and on the correct device
- If the cause is a _init_step failure, follow the fixes for error 464 (UCX/NIXL environment)
Defensive patterns
Strategy: try-catch
Validate before calling
assert all_expert_weights and expert_weights, 'NixlEplbCommunicator requires non-empty weights and buffer'
Try / catch
try:
comm = NixlEplbCommunicator(...)
except RuntimeError as e:
if 'Failed to initialize NixlEplbCommunicator' in str(e):
log.error('cause: %r', e.__cause__)
raise Prevention
- Populate expert weights and buffers before constructing the communicator
- Log the chained cause; the wrapper adds no new information
When it happens
Trigger: Passing empty all_expert_weights or expert_buffer; a NIXL agent/descriptor error from _init_step (see error 464) bubbling through the factory; invalid cpu_group for collective metadata exchange.
Common situations: Initializing EPLB before the model's expert weights are populated; fabric/UCX problems during agent creation; elastic ranks constructing the communicator with different world sizes.
Related errors
- Configuration error: {0}
- Endpoint not ready after {0}s: {1}
- Backend error: {0}
- IO error: {0}
- chat template is required but none was configured
AI-assisted analysis of vllm-project/vllm@c794754062 (2026-08-14).
Data as JSON: /api/errors/4476123db632da3d.
Report an issue: GitHub.