sgl-project/sglang · error · RuntimeError

Mooncake store is not initialized.

Error message

Mooncake store is not initialized.

What it means

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.

Source

Thrown at python/sglang/srt/mem_cache/storage/mooncake_store/mooncake_store.py:318

            extra_config.get("master_server_address") is not None
            or extra_config.get("client_server_address") is not None
        ):
            config = MooncakeStoreConfig.load_from_extra_config(extra_config)
            logger.info("Mooncake Configuration loaded from extra_config successfully.")

        elif envs.SGLANG_HICACHE_MOONCAKE_CONFIG_PATH.is_set():
            config = MooncakeStoreConfig.from_file()
            logger.info("Mooncake Configuration loaded from file successfully.")

        else:
            config = MooncakeStoreConfig.load_from_env()
            logger.info("Mooncake Configuration loaded from env successfully.")

        return config

    def register_buffer(self, tensor: torch.Tensor):
        if self.store is None:
            raise RuntimeError("Mooncake store is not initialized.")
        ptr = tensor.data_ptr()
        size = tensor.numel() * tensor.element_size()
        if size == 0:
            # conv-only models have a 0-element ssm state; nothing to register
            return
        ret_code = self.store.register_buffer(ptr, size)
        if ret_code != 0:
            logger.error(f"Failed to register buffer, error code: {ret_code}")
            raise RuntimeError(
                f"Failed to register buffer to Mooncake Store, error code: {ret_code}"
            )


class MooncakeStore(HiCacheStorage, MooncakeBaseStore):

    @staticmethod
    def _standalone_required_bytes(mem_pool: Any) -> int:
        """Compute total bytes of host buffers that must be visible to the real client.

View on GitHub (pinned to 0132848349)

Solutions

  1. Re-create the MooncakeStore instance and ensure setup() succeeds (check earlier logs for the setup error)
  2. Check the master address/transfer engine health before retrying
Defensive patterns

Strategy: try-catch

Validate before calling

assert store.store is not None, 'Mooncake store not set up yet; run/retry setup() first'

Type guard

def store_ready(s) -> bool:
    return getattr(s, 'store', None) is not None

Try / catch

try:
    store.register_buffer(t)
except RuntimeError as e:
    if 'not initialized' in str(e):
        store = MooncakeStore(...)  # re-init after fixing setup failure
        store.register_buffer(t)
    else:
        raise

Prevention

When it happens

Trigger: 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.

Common situations: Reusing a store instance after a failed setup; subclass or test that bypasses initialization.

Related errors


AI-assisted analysis of sgl-project/sglang@0132848349 (2026-08-28). Data as JSON: /api/errors/9cdd78c5ef9fc6f5. Report an issue: GitHub.