{"record":{"id":"9cdd78c5ef9fc6f5","repo":"sgl-project/sglang","slug":"mooncake-store-is-not-initialized","errorCode":null,"errorMessage":"Mooncake store is not initialized.","messagePattern":"Mooncake store is not initialized\\.","errorType":"exception","errorClass":"RuntimeError","httpStatus":null,"severity":"error","filePath":"python/sglang/srt/mem_cache/storage/mooncake_store/mooncake_store.py","lineNumber":318,"sourceCode":"            extra_config.get(\"master_server_address\") is not None\n            or extra_config.get(\"client_server_address\") is not None\n        ):\n            config = MooncakeStoreConfig.load_from_extra_config(extra_config)\n            logger.info(\"Mooncake Configuration loaded from extra_config successfully.\")\n\n        elif envs.SGLANG_HICACHE_MOONCAKE_CONFIG_PATH.is_set():\n            config = MooncakeStoreConfig.from_file()\n            logger.info(\"Mooncake Configuration loaded from file successfully.\")\n\n        else:\n            config = MooncakeStoreConfig.load_from_env()\n            logger.info(\"Mooncake Configuration loaded from env successfully.\")\n\n        return config\n\n    def register_buffer(self, tensor: torch.Tensor):\n        if self.store is None:\n            raise RuntimeError(\"Mooncake store is not initialized.\")\n        ptr = tensor.data_ptr()\n        size = tensor.numel() * tensor.element_size()\n        if size == 0:\n            # conv-only models have a 0-element ssm state; nothing to register\n            return\n        ret_code = self.store.register_buffer(ptr, size)\n        if ret_code != 0:\n            logger.error(f\"Failed to register buffer, error code: {ret_code}\")\n            raise RuntimeError(\n                f\"Failed to register buffer to Mooncake Store, error code: {ret_code}\"\n            )\n\n\nclass MooncakeStore(HiCacheStorage, MooncakeBaseStore):\n\n    @staticmethod\n    def _standalone_required_bytes(mem_pool: Any) -> int:\n        \"\"\"Compute total bytes of host buffers that must be visible to the real client.","sourceCodeStart":300,"sourceCodeEnd":336,"githubUrl":"https://github.com/sgl-project/sglang/blob/0132848349585cfe6aae51c4941cbae872505f8a/python/sglang/srt/mem_cache/storage/mooncake_store/mooncake_store.py#L300-L336","documentation":"register_buffer() was called before the underlying MooncakeDistributedStore was successfully set up (self.store is None). Typically this means setup failed earlier or initialization was skipped, leaving a half-constructed MooncakeBaseStore.","triggerScenarios":"Calling MooncakeBaseStore.register_buffer() when __init__ failed during setup() or when the store object was constructed in a degenerate/mock path that never assigned self.store.","commonSituations":"Reusing a store instance after a failed setup; subclass or test that bypasses initialization.","solutions":["Re-create the MooncakeStore instance and ensure setup() succeeds (check earlier logs for the setup error)","Check the master address/transfer engine health before retrying"],"exampleFix":null,"handlingStrategy":"try-catch","validationCode":"assert store.store is not None, 'Mooncake store not set up yet; run/retry setup() first'","typeGuard":"def store_ready(s) -> bool:\n    return getattr(s, 'store', None) is not None","tryCatchPattern":"try:\n    store.register_buffer(t)\nexcept RuntimeError as e:\n    if 'not initialized' in str(e):\n        store = MooncakeStore(...)  # re-init after fixing setup failure\n        store.register_buffer(t)\n    else:\n        raise","preventionTips":["Treat setup failures as fatal; don't reuse the object","Log setup() ret codes and assert store.store before registration"],"tags":["mooncake","initialization","state","runtime-check"],"backgroundTag":"uninitialized-store-access","analyzedSha":"0132848349585cfe6aae51c4941cbae872505f8a","analyzedAt":"2026-08-28T05:10:05.995Z","schemaVersion":2},"datasetVersion":"2026-08-28T06:17:29.519Z"}