sgl-project/sglang · error · ValueError
Pi05Pipeline v1 supports same-process execution only. Use pr
Error message
Pi05Pipeline v1 supports same-process execution only. Use prefix/action logical groups inside one worker; cross-node multimodal_gen disaggregation is a v2 target.
What it means
Raised by Pi05Pipeline.validate_disagg_role for any role except RoleType.MONOLITHIC. Pi05 (VLA) v1 runs prefix and action experts in one process; cross-node multimodal_gen disaggregation is deferred to v2, so the guard blocks PD deployments early.
Source
Thrown at python/sglang/multimodal_gen/runtime/pipelines/pi05.py:38
VLAObservationPreprocessStage,
VLAPrefixEncodingStage,
)
from sglang.multimodal_gen.runtime.server_args import ServerArgs
from sglang.multimodal_gen.runtime.utils.logging_utils import init_logger
from sglang.multimodal_gen.runtime.vla.prefix_cache import VLAPrefixCacheManager
logger = init_logger(__name__)
class Pi05Pipeline(ComposedPipelineBase):
pipeline_name = "Pi05Pipeline"
pipeline_config_cls = Pi05PipelineConfig
sampling_params_cls = Pi05SamplingParams
_required_config_modules: list[str] = []
def validate_disagg_role(self, role: RoleType) -> None:
if role != RoleType.MONOLITHIC:
raise ValueError(
"Pi05Pipeline v1 supports same-process execution only. "
"Use prefix/action logical groups inside one worker; cross-node "
"multimodal_gen disaggregation is a v2 target."
)
def load_modules(
self,
server_args: ServerArgs,
loaded_modules: dict[str, torch.nn.Module] | None = None,
) -> dict[str, torch.nn.Module]:
if loaded_modules is not None:
return loaded_modules
pipeline_config: Pi05PipelineConfig = server_args.pipeline_config
pipeline_config.offload_prefix_image_encoder = (
pipeline_config.offload_prefix_image_encoder
or bool(server_args.image_encoder_cpu_offload)
)View on GitHub (pinned to 0132848349)
Solutions
- Deploy Pi05 monolithically: unset the disaggregation role / remove PD flags from the launch command
- Use prefix/action logical groups within one worker for the parallelism you need (as the message suggests)
- Track upstream v2 for cross-node Pi05 disaggregation instead of forcing the role
Example fix
# before --disaggregation-role decode --model pi05 # after --model pi05 # monolithic; use logical groups inside one worker
Defensive patterns
Strategy: validation
Validate before calling
if role != RoleType.MONOLITHIC:
raise SystemExit('Pi05 v1 is monolithic-only; remove disaggregation settings') Prevention
- Do not reuse PD cluster templates for Pi05
- Use logical groups within one worker for prefix/action separation
When it happens
Trigger: Starting the server with a prefill or decode disaggregation role while the pipeline resolves to Pi05Pipeline; PD-aware orchestrators assigning roles to every replica trigger it at validation time.
Common situations: Cluster templates with role env vars set globally; migrating a serving fleet to Pi05 without stripping PD flags; experimenting with PD on a newly added VLA model.
Related errors
- MiniMaxH3Pipeline only supports monolithic deployment; disag
- VLA action expert should not share the prefix TP layout. Use
- Pi05 v1 expects one prompt per action request
- Pi05 v1 expects one state vector per request
- Pi05 state dim must be <= {self.config.state_dim}, got {stat
AI-assisted analysis of sgl-project/sglang@0132848349 (2026-08-28).
Data as JSON: /api/errors/e9b8ade0e82715de.
Report an issue: GitHub.