{"record":{"id":"4edf4f594f392204","repo":"vllm-project/vllm","slug":"unsupported-connector-type-connector-name-4edf4f","errorCode":null,"errorMessage":"Unsupported connector type: {connector_name}","messagePattern":"Unsupported connector type: (.+?)","errorType":"validation","errorClass":"ValueError","httpStatus":null,"severity":"error","filePath":"vllm/distributed/kv_transfer/kv_connector/factory.py","lineNumber":127,"sourceCode":"                connector_cls = getattr(connector_module, connector_name)\n            except AttributeError as e:\n                raise AttributeError(\n                    f\"Class {connector_name} not found in {connector_module_path}\"\n                ) from e\n            connector_cls = cast(type[KVConnectorBaseType], connector_cls)\n            if not supports_kw(connector_cls, \"kv_cache_config\"):\n                msg = (\n                    f\"Connector {connector_cls.__name__} uses deprecated \"\n                    \"2-argument constructor signature. External v1 KV \"\n                    \"connectors must accept kv_cache_config as the third \"\n                    \"constructor argument and pass it to super().__init__().\"\n                )\n                logger.error(msg)\n                raise ValueError(msg)\n        elif connector_name in cls._registry:\n            connector_cls = cls._registry[connector_name]()\n        else:\n            raise ValueError(f\"Unsupported connector type: {connector_name}\")\n        return connector_cls\n\n    @classmethod\n    def supports_hma_config(cls, kv_transfer_config: \"KVTransferConfig\") -> bool:\n        \"\"\"Return whether this KV transfer config supports HMA.\n\n        MultiConnector is a special case: the wrapper class implements\n        SupportsHMA, but effective support depends on every configured child.\n        \"\"\"\n        connector_cls = cls.get_connector_class(kv_transfer_config)\n        if kv_transfer_config.kv_connector != \"MultiConnector\":\n            return supports_hma(connector_cls)\n\n        from vllm.distributed.kv_transfer.kv_connector.v1.multi_connector import (\n            MultiConnector,\n        )\n\n        return MultiConnector.all_children_support_hma(kv_transfer_config)","sourceCodeStart":109,"sourceCodeEnd":145,"githubUrl":"https://github.com/vllm-project/vllm/blob/c794754062d49a8fdb63ab3c5215b488b865030c/vllm/distributed/kv_transfer/kv_connector/factory.py#L109-L145","documentation":"get_connector_class resolved neither an external module path (kv_connector_module_path falsy) nor a registry entry for kv_connector, so the name is unsupported. This is the fallback branch after the registry check fails — the name is neither built-in nor externally locatable.","triggerScenarios":"kv_connector set to a name that is not in the factory registry and kv_connector_module_path is None/empty. Common with names of connectors that exist in other vLLM versions or in external repos without the module path configured.","commonSituations":"Version skew: connector name valid in newer/older vLLM but not in the running one; third-party connector used without kv_connector_module_path; typo in the connector name.","solutions":["For external connectors, set kv_connector_module_path to the module containing the class","For built-in connectors, check the exact registered name for your vLLM version","Upgrade/downgrade vLLM to the version where this connector name is registered"],"exampleFix":"# before\nKVTransferConfig(kv_connector=\"LMCacheConnectorV1\")  # not in registry\n\n# after\nKVTransferConfig(\n    kv_connector=\"LMCacheConnectorV1\",\n    kv_connector_module_path=\"lmcache.integration.vllm.v1_connector\",\n)","handlingStrategy":"validation","validationCode":"name = cfg.kv_connector\nknown = cfg.kv_connector_module_path is not None or name in KVConnectorFactory._registry\nif not known:\n    raise SystemExit(f\"Unsupported connector type: {name}; set kv_connector_module_path\")","typeGuard":"def connector_resolvable(cfg) -> bool:\n    return (\n        bool(cfg.kv_connector_module_path)\n        or cfg.kv_connector in KVConnectorFactory._registry\n    )","tryCatchPattern":null,"preventionTips":["Always set kv_connector_module_path for third-party connectors","Check connector availability for your vLLM version in release notes"],"tags":["kv-transfer","registry","config","vllm"],"backgroundTag":null,"analyzedSha":"c794754062d49a8fdb63ab3c5215b488b865030c","analyzedAt":"2026-08-14T21:17:39.825Z","schemaVersion":2},"datasetVersion":"2026-08-15T22:17:37.221Z"}