vllm-project/vllm · error · ValueError
Unsupported connector type: {connector_name}
Error message
Unsupported connector type: {connector_name} What it means
When ec_connector names a class that is not in the factory registry, vLLM falls back to importing it from ec_transfer_config.ec_connector_module_path. If that module path is also None, the connector cannot be located and get_connector_class raises ValueError('Unsupported connector type: ...'). So this fires only for unregistered names with no module path supplied.
Source
Thrown at vllm/distributed/ec_transfer/ec_connector/factory.py:71
# - Should only be used inside the Scheduler class
# Worker connector:
# - Co-locate with worker process
return connector_cls(config, role)
@classmethod
def get_connector_class(
cls, ec_transfer_config: "ECTransferConfig"
) -> type[ECConnectorBase]:
"""Get the connector class by name."""
connector_name = ec_transfer_config.ec_connector
if connector_name is None:
raise ValueError("EC connect must not be None")
elif connector_name in cls._registry:
connector_cls = cls._registry[connector_name]()
else:
connector_module_path = ec_transfer_config.ec_connector_module_path
if connector_module_path is None:
raise ValueError(f"Unsupported connector type: {connector_name}")
connector_module = importlib.import_module(connector_module_path)
connector_cls = getattr(connector_module, connector_name)
return connector_cls
# Register various connectors here.
# The registration should not be done in each individual file, as we want to
# only load the files corresponding to the current connector.
ECConnectorFactory.register_connector(
"ECExampleConnector",
"vllm.distributed.ec_transfer.ec_connector.example_connector",
"ECExampleConnector",
)
ECConnectorFactory.register_connector(
"ECCPUConnector",
"vllm.distributed.ec_transfer.ec_connector.cpu.connector",View on GitHub (pinned to c794754062)
Solutions
- Fix the name to exactly match a registered connector (check ECConnectorFactory._registry keys)
Example fix
# before
ECTransferConfig(ec_connector="MyConnector") # not registered, no module path
# ValueError: Unsupported connector type: MyConnector
# after
ECTransferConfig(
ec_connector="MyConnector",
ec_connector_module_path="my_pkg.ec.MyConnector",
)
# or register it:
ECConnectorFactory.register_connector("MyConnector", "my_pkg.ec", "MyConnector") Defensive patterns
Strategy: validation
Validate before calling
name = ec_transfer_config.ec_connector
registered = name in ECConnectorFactory._registry
has_path = ec_transfer_config.ec_connector_module_path is not None
assert registered or has_path, f"connector '{name}' is neither registered nor importable" Type guard
def connector_resolvable(ec_transfer_config) -> bool:
n = ec_transfer_config.ec_connector
return n is not None and (
n in ECConnectorFactory._registry
or ec_transfer_config.ec_connector_module_path is not None
) Prevention
- Cross-check connector names against ECConnectorFactory._registry keys
- For custom connectors set ec_connector_module_path or register them at startup
- Treat config renames as breaking changes and grep configs when upgrading
When it happens
Trigger: Setting ec_connector='MyCustomConnector' without registering it via ECConnectorFactory.register_connector and without setting ec_connector_module_path; typos in the connector name (falls through the registry lookup and has no module path to rescue it).
Common situations: Custom/third-party EC connectors; renaming a connector class without updating config strings; configs copied between versions where a built-in name was removed from the registry.
Related errors
- ec_transfer_config must be set to create a connector
- EC connect must not be None
- ec_transfer_config must be set for ECConnectorBase
- ec_cpu_bytes must be specified in ec_connector_extra_config
- ec_transfer_config must be set for ECConnectorBase
AI-assisted analysis of vllm-project/vllm@c794754062 (2026-08-14).
Data as JSON: /api/errors/dc4ff2e9a9065235.
Report an issue: GitHub.