sgl-project/sglang · error · RuntimeError
--enable-metrics requires smg-grpc-servicer ≥ 0.5.3 (the ver
Error message
--enable-metrics requires smg-grpc-servicer ≥ 0.5.3 (the version that accepts 'on_request_manager_ready'); installed version lacks the hook so the HTTP sidecar would never start. Upgrade smg-grpc-servicer or remove --enable-metrics.
What it means
serve_grpc refuses to start when --enable-metrics is passed but the installed smg-grpc-servicer is older than 0.5.3, which is the first version accepting the on_request_manager_ready hook. Without that hook the metrics HTTP sidecar can never launch, so the server fails fast instead of silently serving without a /metrics endpoint.
Source
Thrown at python/sglang/srt/entrypoints/grpc_server.py:248
exc_info=True,
)
# Older smg-grpc-servicer releases (≤ 0.5.2) accept only (server_args,
# model_info) and reject the on_request_manager_ready hook. The hook is
# what calls _start_sidecar_server, so dropping the kwarg disables the
# entire HTTP sidecar (Prometheus /metrics and /start_profile +
# /stop_profile). Core gRPC serving still works without it.
serve_kwargs: dict = {}
sidecar_supported = (
"on_request_manager_ready" in inspect.signature(_serve_grpc).parameters
)
if sidecar_supported:
serve_kwargs["on_request_manager_ready"] = _on_request_manager_ready
elif cfg.enable_metrics:
# User explicitly asked for metrics but the installed servicer can't
# start the sidecar that serves them — fail loud rather than silently
# produce a server with no /metrics endpoint.
raise RuntimeError(
"--enable-metrics requires smg-grpc-servicer ≥ 0.5.3 (the version "
"that accepts 'on_request_manager_ready'); installed version "
"lacks the hook so the HTTP sidecar would never start. Upgrade "
"smg-grpc-servicer or remove --enable-metrics."
)
else:
logger.warning(
"Installed smg-grpc-servicer does not accept "
"'on_request_manager_ready'; HTTP sidecar disabled "
"(no /metrics, /start_profile, /stop_profile). "
"Upgrade smg-grpc-servicer to ≥ 0.5.3 to enable it."
)
try:
await _serve_grpc(server_args, model_info, **serve_kwargs)
finally:
if sidecar_runner is not None:
try:View on GitHub (pinned to 0132848349)
Solutions
- pip install -U 'smg-grpc-servicer>=0.5.3' (with the [sglang] extra if needed)
- Or drop --enable-metrics from the launch arguments
- Verify the installed version with pip show smg-grpc-servicer after upgrading
Example fix
# before pip install 'smg-grpc-servicer[sglang]==0.4.0' python -m sglang.launch_server --grpc --enable-metrics ... # after pip install -U 'smg-grpc-servicer[sglang]>=0.5.3' python -m sglang.launch_server --grpc --enable-metrics ...
Defensive patterns
Strategy: validation
Validate before calling
from importlib.metadata import version
from packaging.version import Version
assert Version(version("smg-grpc-servicer")) >= Version("0.5.3"), "upgrade smg-grpc-servicer for --enable-metrics" Type guard
def metrics_sidecar_supported() -> bool:
from importlib.metadata import version
from packaging.version import Version
try:
return Version(version("smg-grpc-servicer")) >= Version("0.5.3")
except Exception:
return False Try / catch
try:
serve_grpc(server_args)
except RuntimeError as e:
if "enable-metrics" in str(e):
server_args.enable_metrics = False
serve_grpc(server_args)
else:
raise Prevention
- Check smg-grpc-servicer version in deployment scripts before enabling --enable-metrics
- Pin 'smg-grpc-servicer[sglang]>=0.5.3' in requirement files
When it happens
Trigger: Launching gRPC mode with cfg.enable_metrics true while the installed smg-grpc-servicer predates 0.5.3 (sidecar_supported is false).
Common situations: Pinning an old smg-grpc-servicer in Docker/requirements while adding --enable-metrics to the launch flags; upgrading sglang but not the servicer extra; CI images with stale extras.
Related errors
- gRPC mode requires the smg-grpc-servicer package. If not ins
- Serve backend {name!r} uses API version {backend.api_version
- Ray is required for --use-ray mode. Install it with: pip ins
- Kimi-K3 DCP with decode_attention_backend='cutedsl_mla' requ
- Please install mooncake by following the instructions at htt
AI-assisted analysis of sgl-project/sglang@0132848349 (2026-08-28).
Data as JSON: /api/errors/7a98f7c5ce3dee2c.
Report an issue: GitHub.