{"record":{"id":"4b9629ea44ee9ca3","repo":"sgl-project/sglang","slug":"either-master-server-address-or-client-server-addr-4b9629","errorCode":null,"errorMessage":"Either master_server_address or client_server_address is required in extra_config","messagePattern":"Either master_server_address or client_server_address is required in extra_config","errorType":"validation","errorClass":"ValueError","httpStatus":null,"severity":"error","filePath":"python/sglang/srt/mem_cache/storage/mooncake_store/mooncake_store.py","lineNumber":218,"sourceCode":"            device_name=envs.MOONCAKE_DEVICE.get(),\n            master_server_address=envs.MOONCAKE_MASTER.get(),\n            master_metrics_port=envs.MOONCAKE_MASTER_METRICS_PORT.get(),\n            check_server=envs.MOONCAKE_CHECK_SERVER.get(),\n            standalone_storage=envs.MOONCAKE_STANDALONE_STORAGE.get(),\n            client_server_address=envs.MOONCAKE_CLIENT.get(),\n            enable_ssd_offload=envs.MOONCAKE_ENABLE_SSD_OFFLOAD.get(),\n            ssd_offload_path=envs.MOONCAKE_OFFLOAD_FILE_STORAGE_PATH.get(),\n            tenant_id=_normalize_tenant_id(envs.MOONCAKE_TENANT_ID.get()),\n        )\n\n    @staticmethod\n    def load_from_extra_config(extra_config: dict) -> \"MooncakeStoreConfig\":\n        \"\"\"Load config from extra_config dictionary.\"\"\"\n        if (\n            \"master_server_address\" not in extra_config\n            and \"client_server_address\" not in extra_config\n        ):\n            raise ValueError(\n                \"Either master_server_address or client_server_address is required in extra_config\"\n            )\n\n        return MooncakeStoreConfig(\n            local_hostname=extra_config.get(\n                \"local_hostname\", envs.MOONCAKE_LOCAL_HOSTNAME.default\n            ),\n            metadata_server=extra_config.get(\n                \"metadata_server\", envs.MOONCAKE_TE_META_DATA_SERVER.default\n            ),\n            global_segment_size=_parse_global_segment_size(\n                extra_config.get(\n                    \"global_segment_size\", envs.MOONCAKE_GLOBAL_SEGMENT_SIZE.default\n                )\n            ),\n            protocol=extra_config.get(\"protocol\", envs.MOONCAKE_PROTOCOL.default),\n            device_name=extra_config.get(\"device_name\", envs.MOONCAKE_DEVICE.default),\n            master_server_address=extra_config.get(","sourceCodeStart":200,"sourceCodeEnd":236,"githubUrl":"https://github.com/sgl-project/sglang/blob/0132848349585cfe6aae51c4941cbae872505f8a/python/sglang/srt/mem_cache/storage/mooncake_store/mooncake_store.py#L200-L236","documentation":"When Mooncake config is supplied via the extra_config dict (e.g. from --storage-extra-config), it must contain master_server_address or client_server_address. Neither key was present, so load_from_extra_config() raises ValueError.","triggerScenarios":"Passing --storage-extra-config '{\"protocol\":\"tcp\"}' (only optional keys) when using the mooncake backend.","commonSituations":"Users forward server kwargs to extra_config but omit the master address; JSON quoting issues silently dropping the key.","solutions":["Add master_server_address (or client_server_address) to the extra_config dict/JSON passed via --storage-extra-config"],"exampleFix":"# before\n--hicache-storage-backend mooncake --storage-extra-config '{\"protocol\":\"tcp\"}'\n# after\n--hicache-storage-backend mooncake --storage-extra-config '{\"protocol\":\"tcp\",\"master_server_address\":\"10.0.0.2:50051\"}'","handlingStrategy":"validation","validationCode":"def extra_config_ok(ec: dict) -> bool:\n    return 'master_server_address' in ec or 'client_server_address' in ec\nassert extra_config_ok(json.loads(args.storage_extra_config))","typeGuard":null,"tryCatchPattern":null,"preventionTips":["Validate --storage-extra-config JSON keys before passing to launch_server","Keep a checked example config"],"tags":["config","mooncake","validation","missing-field"],"backgroundTag":"required-config-field-missing","analyzedSha":"0132848349585cfe6aae51c4941cbae872505f8a","analyzedAt":"2026-08-28T05:10:05.995Z","schemaVersion":2},"datasetVersion":"2026-08-28T06:17:29.519Z"}