sgl-project/sglang · warning · DeprecationWarning
'data_parallel_rank' is deprecated, use 'routed_dp_rank' ins
Error message
'data_parallel_rank' is deprecated, use 'routed_dp_rank' instead.
What it means
OpenAI-style protocol requests accepted a data_parallel_rank field. The request model migrates it to routed_dp_rank (only when routed_dp_rank is absent) and warns. Requests keep working during the transition period.
Source
Thrown at python/sglang/srt/entrypoints/openai/protocol.py:318
error_file_id: Optional[str] = None
created_at: int
in_progress_at: Optional[int] = None
expires_at: Optional[int] = None
finalizing_at: Optional[int] = None
completed_at: Optional[int] = None
failed_at: Optional[int] = None
expired_at: Optional[int] = None
cancelling_at: Optional[int] = None
cancelled_at: Optional[int] = None
request_counts: Optional[dict] = None
metadata: Optional[dict] = None
def _migrate_deprecated_dp_rank(values: dict) -> dict:
if isinstance(values, dict) and values.get("data_parallel_rank") is not None:
import warnings
warnings.warn(
"'data_parallel_rank' is deprecated, use 'routed_dp_rank' instead.",
DeprecationWarning,
stacklevel=2,
)
if values.get("routed_dp_rank") is None:
values["routed_dp_rank"] = values["data_parallel_rank"]
return values
class CompletionRequest(BaseModel):
# Ordered by official OpenAI API documentation
# https://platform.openai.com/docs/api-reference/completions/create
model: str = Field(
default=DEFAULT_MODEL_NAME,
description="Model name. Supports LoRA adapters via 'base-model:adapter-name' syntax.",
)
prompt: Union[List[int], List[List[int]], str, List[str]]
best_of: Optional[int] = NoneView on GitHub (pinned to 0132848349)
Solutions
- Change the request field to routed_dp_rank
- Audit clients/SDKs for the old field name and update
- Add a CI lint/grep for data_parallel_rank to catch regressions before the alias is removed
Example fix
# before
{"text": "hi", "sampling_params": {...}, "data_parallel_rank": 1}
# after
{"text": "hi", "sampling_params": {...}, "routed_dp_rank": 1} Defensive patterns
Strategy: validation
Validate before calling
body.pop("data_parallel_rank", None)
body.setdefault("routed_dp_rank", old_rank) if old_rank is not None else None Prevention
- Keep client SDK field names in sync with server release notes
- Contract tests that reject deprecated request fields
When it happens
Trigger: Sending a JSON request body containing data_parallel_rank to an sglang OpenAI-compatible endpoint (/generate, /v1/chat/completions variants that accept it).
Common situations: Client SDKs or load-test scripts written against older sglang releases; DP routing middleware that pins a rank per request.
Related errors
- 'data_parallel_rank' is deprecated, use 'routed_dp_rank' ins
- 'python -m sglang.launch_server' is still supported, but 'sg
- Environment variable '{self.deprecated_name}' is deprecated;
- Environment variable {old_name} is deprecated. Please use {s
- Environment variable {key} is deprecated, please use {new_ke
AI-assisted analysis of sgl-project/sglang@0132848349 (2026-08-28).
Data as JSON: /api/errors/0b8d86d7845b22aa.
Report an issue: GitHub.