{"record":{"id":"7b65ff444f071737","repo":"vllm-project/vllm","slug":"unknown-mooncake-mode-self-mode-r","errorCode":null,"errorMessage":"unknown Mooncake mode: {self.mode!r}","messagePattern":"unknown Mooncake mode: (.+?)","errorType":"validation","errorClass":"ValueError","httpStatus":null,"severity":"error","filePath":"vllm/distributed/kv_transfer/kv_connector/v1/mooncake/store/worker.py","lineNumber":142,"sourceCode":"    ``mode`` selects the topology: ``embedded`` (each rank contributes\n    ``global_segment_size`` in-process) or ``standalone-store`` (rank\n    contributes 0; an external ``mooncake_client`` process owns the pool\n    and the SSD tier).\n    \"\"\"\n\n    metadata_server: str\n    master_server_address: str\n    protocol: str\n    device_name: str\n    mode: MooncakeMode = \"embedded\"\n    global_segment_size: int = DEFAULT_GLOBAL_SEGMENT_SIZE\n    local_buffer_size: int = DEFAULT_LOCAL_BUFFER_SIZE\n    enable_offload: bool = False\n    tenant_id: str = DEFAULT_TENANT_ID\n\n    def __post_init__(self) -> None:\n        if self.mode not in (\"embedded\", \"standalone-store\"):\n            raise ValueError(f\"unknown Mooncake mode: {self.mode!r}\")\n        if self.local_buffer_size <= 0:\n            raise ValueError(\"local_buffer_size must be > 0\")\n        if self.mode == \"embedded\" and self.global_segment_size == 0:\n            raise ValueError(\"embedded mode requires global_segment_size > 0\")\n        if self.mode == \"standalone-store\" and self.global_segment_size != 0:\n            raise ValueError(\"standalone-store mode requires global_segment_size == 0\")\n\n    @staticmethod\n    def from_file(file_path: str) -> \"MooncakeStoreConfig\":\n        with open(file_path) as file:\n            config = json.load(file)\n        return MooncakeStoreConfig(\n            metadata_server=config.get(\"metadata_server\", \"\"),\n            master_server_address=config.get(\"master_server_address\", \"\"),\n            protocol=config.get(\"protocol\", \"rdma\"),\n            device_name=config.get(\"device_name\", \"\"),\n            mode=config.get(\"mode\", \"embedded\"),\n            global_segment_size=_parse_size(","sourceCodeStart":124,"sourceCodeEnd":160,"githubUrl":"https://github.com/vllm-project/vllm/blob/c794754062d49a8fdb63ab3c5215b488b865030c/vllm/distributed/kv_transfer/kv_connector/v1/mooncake/store/worker.py#L124-L160","documentation":"MooncakeStoreConfig.__post_init__ validates the parsed mooncake store config file; 'mode' must be exactly 'embedded' or 'standalone-store'. Anything else (typo, different casing, missing quotes in JSON producing a bad value) is rejected at construction time before any mooncake API is touched.","triggerScenarios":"Writing \"mode\": \"standalone\" or \"embedding\" or leaving a stale value in the JSON file referenced by MOONCAKE_CONFIG_PATH.","commonSituations":"Copy-pasting a mooncake config from another deployment/docs that uses a different mode vocabulary; mooncake upstream renaming modes between versions.","solutions":["Set \"mode\": \"embedded\" (store runs inside the vLLM process with a transfer-engine segment) or \"mode\": \"standalone-store\" (talk to an external mooncake store service)","Check the JSON spelling in the file pointed to by MOONCAKE_CONFIG_PATH"],"exampleFix":"// before (mooncake.json)\n{ \"mode\": \"standalone\" }\n\n// after\n{ \"mode\": \"standalone-store\" }","handlingStrategy":"validation","validationCode":"raw = json.load(open(path))\nif raw.get(\"mode\") not in (\"embedded\", \"standalone-store\"):\n    raise ValueError(f\"bad mode {raw.get('mode')!r}; use embedded or standalone-store\")","typeGuard":"def is_valid_mooncake_mode(v) -> bool:\n    return isinstance(v, str) and v in (\"embedded\", \"standalone-store\")","tryCatchPattern":null,"preventionTips":["Validate the mooncake config JSON in deploy scripts before launching workers","Keep a canonical, version-controlled mooncake.json per deployment mode"],"tags":["mooncake","config","validation"],"backgroundTag":null,"analyzedSha":"c794754062d49a8fdb63ab3c5215b488b865030c","analyzedAt":"2026-08-14T21:17:39.825Z","schemaVersion":2},"datasetVersion":"2026-08-15T22:17:37.221Z"}