sgl-project/sglang · error · ValueError
Intern-S2-Mobius does not support: " + "; ".join(unsupported
Error message
Intern-S2-Mobius does not support: " + "; ".join(unsupported) + "."
What it means
The Intern-S2-Mobius model in SGLang only supports single-node parallelism: pipeline parallelism (--pp-size != 1) and expert parallelism (--ep-size != 1) are both rejected, with the message listing every violated constraint.
Source
Thrown at python/sglang/srt/server_args.py:5780
uses_mamba_radix_cache=False,
)
if parse_connector_type(cfg.model_path) == ConnectorType.INSTANCE:
# No model overrides for an instance connector: no hf_config to
# key them on.
return
model_config = self.get_model_config()
hf_config = model_config.hf_config
model_arch = hf_config.architectures[0]
if model_arch == "InternS2MobiusForConditionalGeneration":
unsupported = []
if cfg.pp_size != 1:
unsupported.append("pipeline parallelism (--pp-size must be 1)")
if cfg.ep_size != 1:
unsupported.append("expert parallelism (--ep-size must be 1)")
if unsupported:
raise ValueError(
"Intern-S2-Mobius does not support: " + "; ".join(unsupported) + "."
)
if cfg.enable_dsa_cache_layer_split and not is_deepseek_dsa(hf_config):
raise ValueError(
"--enable-dsa-cache-layer-split is only supported for DSA "
"(DeepSeek Sparse Attention) models."
)
if cfg.enable_cp_decode_attn_tp:
from sglang.srt.layers.cp.cp_decode_attn_tp import (
CP_DECODE_ATTN_TP_SUPPORTED_ARCHS,
)
if model_arch not in CP_DECODE_ATTN_TP_SUPPORTED_ARCHS:
raise ValueError(
"--enable-cp-decode-attn-tp is only supported for models "
"whose attention linears are replicated across CP ranks "View on GitHub (pinned to 0132848349)
Solutions
- Set --pp-size 1 and --ep-size 1 for Intern-S2-Mobius
- Use tensor parallelism (--tp-size) instead if you need multi-GPU scaling
- Move to a model arch that supports PP/EP if those are hard requirements
Example fix
# before python -m sglang.launch_server --model intern-s2-mobius --pp-size 2 # after python -m sglang.launch_server --model intern-s2-mobius --pp-size 1 --tp-size 2
Defensive patterns
Strategy: validation
Validate before calling
if "intern-s2-mobius" in model_path.lower():
assert args.get("pp_size", 1) == 1 and args.get("ep_size", 1) == 1, "Intern-S2-Mobius requires pp=ep=1" Prevention
- Maintain per-model launch profiles instead of one generic cluster template
- Default pp_size/ep_size to 1 unless the model docs say otherwise
When it happens
Trigger: Loading an Intern-S2-Mobius checkpoint (per its hf_config) with --pp-size > 1 and/or --ep-size > 1 in ServerArgs.
Common situations: Reusing TP/PP/EP cluster launch scripts tuned for DeepSeek-style MoE models when serving Intern-S2-Mobius; default cluster profiles that set ep_size = tensor count.
Related errors
- SGLANG_DISAGG_STAGING_BUFFER with pp_size > 1 is only suppor
- --enable-dsa-cache-layer-split is only supported for DSA (De
- --enable-cp-decode-attn-tp is only supported for models whos
- --enable-dsa-cache-layer-split is not supported with pipelin
- bad compress_ratio {compress_ratio}
AI-assisted analysis of sgl-project/sglang@0132848349 (2026-08-28).
Data as JSON: /api/errors/a0a2f074b20faedd.
Report an issue: GitHub.