{"record":{"id":"33a982f31e95bb1d","repo":"sgl-project/sglang","slug":"the-installed-mooncake-version-does-not-support-te","errorCode":null,"errorMessage":"The installed Mooncake version does not support tenant_id in MooncakeDistributedStore.setup(). Please upgrade Mooncake to use non-default Mooncake tenants with SGLang.","messagePattern":"The installed Mooncake version does not support tenant_id in MooncakeDistributedStore\\.setup\\(\\)\\. Please upgrade Mooncake to use non-default Mooncake tenants with SGLang\\.","errorType":"exception","errorClass":"RuntimeError","httpStatus":null,"severity":"error","filePath":"python/sglang/srt/mem_cache/storage/mooncake_store/mooncake_embedding_store.py","lineNumber":39,"sourceCode":"        self.store = MooncakeDistributedStore()\n        self.config = self._load_config(storage_config)\n        setup_kwargs = {}\n        if self.config.tenant_id != DEFAULT_TENANT_ID:\n            setup_kwargs[\"tenant_id\"] = self.config.tenant_id\n        try:\n            ret_code = self.store.setup(\n                self.config.local_hostname,\n                self.config.metadata_server,\n                self.config.global_segment_size,\n                16 * 1024 * 1024,  # Internal local buffer size\n                self.config.protocol,\n                self.config.device_name,\n                self.config.master_server_address,\n                **setup_kwargs,\n            )\n        except TypeError as e:\n            if \"tenant_id\" in setup_kwargs and \"tenant_id\" in str(e):\n                raise RuntimeError(\n                    \"The installed Mooncake version does not support tenant_id \"\n                    \"in MooncakeDistributedStore.setup(). Please upgrade \"\n                    \"Mooncake to use non-default Mooncake tenants with SGLang.\"\n                ) from e\n            raise\n        if ret_code != 0:\n            raise RuntimeError(f\"Failed to setup Mooncake Embedding Store: {ret_code}\")\n\n        logger.info(\"Mooncake Embedding Store initialized successfully.\")\n\n    def get_key(self, mm_hash: str) -> str:\n        return f\"emb_{mm_hash}\"\n\n    def batch_get(\n        self, hashes: List[str], ptrs: List[int], sizes: List[int]\n    ) -> List[bool]:\n        keys = [self.get_key(h) for h in hashes]\n        results = self.store.batch_get_into(keys, ptrs, sizes)","sourceCodeStart":21,"sourceCodeEnd":57,"githubUrl":"https://github.com/sgl-project/sglang/blob/0132848349585cfe6aae51c4941cbae872505f8a/python/sglang/srt/mem_cache/storage/mooncake_store/mooncake_embedding_store.py#L21-L57","documentation":"MooncakeDistributedStore.setup() rejected a tenant_id keyword, a TypeError that SGLang detects and converts into an explicit 'installed Mooncake is too old' RuntimeError. It only fires when a non-default Mooncake tenant_id was configured for the embedding store.","triggerScenarios":"Constructing MooncakeEmbeddingStore with a tenant_id set (via config/env) while the installed mooncakestore package's setup() signature lacks tenant_id (older mooncake).","commonSituations":"Upgrading SGLang but keeping an old mooncake-transfer-engine; setting MOONCAKE_TENANT_ID or tenant_id in the mooncake config file with a legacy Mooncake build.","solutions":["pip install mooncake-transfer-engine --upgrade","Or remove/unset tenant_id so the default tenant is used"],"exampleFix":null,"handlingStrategy":"type-guard","validationCode":"import inspect\nfrom mooncake.store import MooncakeDistributedStore\nSUPPORTS_TENANT = 'tenant_id' in inspect.signature(MooncakeDistributedStore.setup).parameters\nif tenant_id and tenant_id != 'default' and not SUPPORTS_TENANT:\n    raise SystemExit('upgrade mooncake-transfer-engine or unset tenant_id')","typeGuard":"def mooncake_supports_tenant() -> bool:\n    import inspect\n    from mooncake.store import MooncakeDistributedStore\n    return 'tenant_id' in inspect.signature(MooncakeDistributedStore.setup).parameters","tryCatchPattern":"try:\n    store = MooncakeEmbeddingStore(cfg)\nexcept RuntimeError as e:\n    if 'tenant_id' in str(e):\n        # fall back to default tenant\n        cfg.tenant_id = 'default'\n        store = MooncakeEmbeddingStore(cfg)\n    else:\n        raise","preventionTips":["Pin mooncake-transfer-engine >= version with tenant support in requirements when using tenants","Smoke-test setup() signature in CI"],"tags":["mooncake","version-mismatch","tenant","dependency"],"backgroundTag":"library-version-mismatch","analyzedSha":"0132848349585cfe6aae51c4941cbae872505f8a","analyzedAt":"2026-08-28T05:10:05.995Z","schemaVersion":2},"datasetVersion":"2026-08-28T06:17:29.519Z"}