[Bugfix] Fix `--data-parallel-start-rank 0` being treated as unset in `create_engine_config` (#47692)

Signed-off-by: Syed Ali Jaseem <syedali0057@gmail.com> Co-authored-by: Claude <noreply@anthropic.com>

Ali Jaseem committed Aug 13, 2026 at 10:12 UTC 64ca614fe49bfce92b0f5eb69625021297a7e003
2 files changed +21 -2
tests/v1/engine/test_engine_args.py
+17
@@ -99,3 +99,20 @@ def test_mm_prefix_lm_raises_batched_tokens_floor():
99 vllm_config = engine_args.create_engine_config(UsageContext.OPENAI_API_SERVER)
100
101 assert vllm_config.scheduler_config.max_num_batched_tokens >= 2496
102 +
103 +
104 +def test_data_parallel_start_rank_zero_infers_hybrid_lb():
105 + """An explicit --data-parallel-start-rank 0 must be treated the same as
106 + any other explicit start rank when inferring hybrid LB mode, not as
107 + "unset" (regression test for a truthiness-vs-`is not None` bug).
108 + """
109 + engine_args = EngineArgs(
110 + model="facebook/opt-125m",
111 + data_parallel_size=4,
112 + data_parallel_size_local=2,
113 + data_parallel_start_rank=0,
114 + )
115 + vllm_config = engine_args.create_engine_config(UsageContext.OPENAI_API_SERVER)
116 +
117 + assert vllm_config.parallel_config.data_parallel_hybrid_lb is True
118 + assert vllm_config.parallel_config.data_parallel_rank == 0
vllm/engine/arg_utils.py
+4 -2
@@ -2158,7 +2158,7 @@ class EngineArgs:
2158 elif self.data_parallel_size_local is not None:
2159 data_parallel_size_local = self.data_parallel_size_local
2160
2161 - if self.data_parallel_start_rank and not headless:
2161 + if self.data_parallel_start_rank is not None and not headless:
2162 # Infer hybrid LB mode.
2163 self.data_parallel_hybrid_lb = True
2164
@@ -2177,7 +2177,9 @@ class EngineArgs:
2177 self.data_parallel_hybrid_lb = False
2178
2179 self.data_parallel_rank = (
2180 - self.data_parallel_start_rank or inferred_data_parallel_rank
2180 + self.data_parallel_start_rank
2181 + if self.data_parallel_start_rank is not None
2182 + else inferred_data_parallel_rank
2183 )
2184 if self.nnodes > 1:
2185 logger.info(