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

  1. Set --pp-size 1 and --ep-size 1 for Intern-S2-Mobius
  2. Use tensor parallelism (--tp-size) instead if you need multi-GPU scaling
  3. 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

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


AI-assisted analysis of sgl-project/sglang@0132848349 (2026-08-28). Data as JSON: /api/errors/a0a2f074b20faedd. Report an issue: GitHub.