{"record":{"id":"b4a0ffad54fcb7ce","repo":"sgl-project/sglang","slug":"sglang-log-scheduler-status-target-is-set-but-en","errorCode":null,"errorMessage":"SGLANG_LOG_SCHEDULER_STATUS_TARGET is set but --enable-metrics is not active. Status dumps require --enable-metrics to work.","messagePattern":"SGLANG_LOG_SCHEDULER_STATUS_TARGET is set but --enable-metrics is not active\\. Status dumps require --enable-metrics to work\\.","errorType":"validation","errorClass":"ValueError","httpStatus":null,"severity":"error","filePath":"python/sglang/srt/utils/scheduler_status_logger.py","lineNumber":29,"sourceCode":"if TYPE_CHECKING:\n    from sglang.srt.managers.schedule_batch import Req, ScheduleBatch\n\n\nclass SchedulerStatusLogger:\n    def __init__(self, targets: List[str], dump_interval: float):\n        self.loggers = create_log_targets(targets=targets, name_prefix=__name__)\n        self.dump_interval = dump_interval\n        self.last_dump_time = 0.0\n        self.rank = dist.get_rank() if dist.is_initialized() else 0\n\n    @staticmethod\n    def maybe_create(enable_metrics: bool) -> Optional[SchedulerStatusLogger]:\n        target = envs.SGLANG_LOG_SCHEDULER_STATUS_TARGET.get()\n        if not target:\n            return None\n\n        if not enable_metrics:\n            raise ValueError(\n                \"SGLANG_LOG_SCHEDULER_STATUS_TARGET is set but --enable-metrics \"\n                \"is not active. Status dumps require --enable-metrics to work.\"\n            )\n\n        return SchedulerStatusLogger(\n            targets=[t.strip() for t in target.split(\",\") if t.strip()],\n            dump_interval=envs.SGLANG_LOG_SCHEDULER_STATUS_INTERVAL.get(),\n        )\n\n    def maybe_dump(\n        self, running_batch: ScheduleBatch, waiting_queue: List[Req]\n    ) -> None:\n        now = time.time()\n        if now - self.last_dump_time < self.dump_interval:\n            return\n\n        self.last_dump_time = now\n        log_json(","sourceCodeStart":11,"sourceCodeEnd":47,"githubUrl":"https://github.com/sgl-project/sglang/blob/0132848349585cfe6aae51c4941cbae872505f8a/python/sglang/srt/utils/scheduler_status_logger.py#L11-L47","documentation":"Scheduler status dumps driven by SGLANG_LOG_SCHEDULER_STATUS_TARGET are implemented on top of the metrics pipeline, so the logger refuses to be created when metrics are disabled. maybe_create() reads the env var and, if set while enable_metrics is False, raises immediately at startup. This is a configuration-consistency guard rather than a runtime failure.","triggerScenarios":"Launching the server with SGLANG_LOG_SCHEDULER_STATUS_TARGET=... in the environment but without --enable-metrics on the command line (or in the YAML config), so maybe_create(enable_metrics=False) is reached with a non-empty target string.","commonSituations":"Ops sets the env var on one node but the launch template lacks --enable-metrics; or metrics were disabled to reduce overhead while a leftover env var from a debug session persists.","solutions":["Add --enable-metrics to the server launch arguments (or config file)","Unset SGLANG_LOG_SCHEDULER_STATUS_TARGET if status dumps are not needed","Audit deployment scripts/env files for stale SGLANG_LOG_SCHEDULER_STATUS_TARGET values"],"exampleFix":"# before\nSGLANG_LOG_SCHEDULER_STATUS_TARGET=/tmp/status.log python -m sglang.launch_server ...\n# after\nSGLANG_LOG_SCHEDULER_STATUS_TARGET=/tmp/status.log python -m sglang.launch_server --enable-metrics ...","handlingStrategy":"validation","validationCode":"import os\nfrom sglang.srt.utils import scheduler_status_logger  # or read via envs\nneed = bool(os.environ.get(\"SGLANG_LOG_SCHEDULER_STATUS_TARGET\"))\nassert not need or enable_metrics, \"set --enable-metrics or unset SGLANG_LOG_SCHEDULER_STATUS_TARGET\"","typeGuard":null,"tryCatchPattern":null,"preventionTips":["Treat SGLANG_LOG_SCHEDULER_STATUS_TARGET and --enable-metrics as a paired setting in deployment templates","Add a preflight check script that validates env vars against server flags"],"tags":["sglang","scheduler","metrics","env-var","startup-config"],"backgroundTag":"env-var-config-conflict","analyzedSha":"0132848349585cfe6aae51c4941cbae872505f8a","analyzedAt":"2026-08-28T05:10:05.995Z","schemaVersion":2},"datasetVersion":"2026-08-28T06:17:29.519Z"}