{"record":{"id":"637e030e52b17e48","repo":"sgl-project/sglang","slug":"sglang-diffusion-attention-config-is-not-set","errorCode":null,"errorMessage":"SGLANG_DIFFUSION_ATTENTION_CONFIG is not set","messagePattern":"SGLANG_DIFFUSION_ATTENTION_CONFIG is not set","errorType":"validation","errorClass":"ValueError","httpStatus":null,"severity":"error","filePath":"python/sglang/multimodal_gen/runtime/layers/attention/backends/sliding_tile_attn.py","lineNumber":127,"sourceCode":"    def __init__(\n        self,\n        num_heads: int,\n        head_size: int,\n        causal: bool,\n        softmax_scale: float,\n        num_kv_heads: int | None = None,\n        prefix: str = \"\",\n        **extra_impl_args,\n    ) -> None:\n        if not st_attn_backend_available:\n            raise ValueError(\"st attn not supported\")\n        # TODO(will-refactor): for now this is the mask strategy, but maybe we should\n        # have a more general config for STA?\n        mask_strategy_file_path = (\n            get_global_server_args().attention_backend_config.mask_strategy_file_path\n        )\n        if mask_strategy_file_path is None:\n            raise ValueError(\"SGLANG_DIFFUSION_ATTENTION_CONFIG is not set\")\n\n        # TODO(kevin): get mask strategy for different STA modes\n        with open(mask_strategy_file_path) as f:\n            mask_strategy = json.load(f)\n        self.mask_strategy = dict_to_3d_list(mask_strategy)\n\n        self.prefix = prefix\n        sp_group = get_sp_group()\n        self.sp_size = sp_group.world_size\n        # STA config\n        self.STA_base_tile_size = [6, 8, 8]\n        self.dit_seq_shape_mapping = RangeDict(\n            {\n                (115200, 115456): \"30x48x80\",\n                82944: \"36x48x48\",\n                69120: \"18x48x80\",\n            }\n        )","sourceCodeStart":109,"sourceCodeEnd":145,"githubUrl":"https://github.com/sgl-project/sglang/blob/0132848349585cfe6aae51c4941cbae872505f8a/python/sglang/multimodal_gen/runtime/layers/attention/backends/sliding_tile_attn.py#L109-L145","documentation":"SlidingTileAttentionBackend.__init__ requires a mask strategy JSON whose path comes from get_global_server_args().attention_backend_config.mask_strategy_file_path (typically set via SGLANG_DIFFUSION_ATTENTION_CONFIG). If unset, it raises ValueError.","triggerScenarios":"Starting with the STA backend while attention_backend_config.mask_strategy_file_path is None (env var not exported / config not passed).","commonSituations":"Tutorials setting STA without the mask config env var; deploy scripts dropping the env var; the config key renamed across versions.","solutions":["Set the mask strategy config: export SGLANG_DIFFUSION_ATTENTION_CONFIG=/path/to/mask_strategy.json or pass attention_backend_config.mask_strategy_file_path","Verify the JSON file exists and parses (it is loaded with json.load in __init__)","If STA isn't intended, choose a different attention backend"],"exampleFix":"# before\npython launch.py --attention-backend sliding_tile  # ValueError: SGLANG_DIFFUSION_ATTENTION_CONFIG is not set\n# after\nexport SGLANG_DIFFUSION_ATTENTION_CONFIG=/models/sta/mask_strategy.json\npython launch.py --attention-backend sliding_tile","handlingStrategy":"validation","validationCode":"import os\nmask_path = get_global_server_args().attention_backend_config.mask_strategy_file_path\nif not mask_path:\n    raise SystemExit(\"set SGLANG_DIFFUSION_ATTENTION_CONFIG=<mask_strategy.json>\")\nassert os.path.isfile(mask_path), f\"mask strategy file missing: {mask_path}\"","typeGuard":null,"tryCatchPattern":"try:\n    backend = SlidingTileAttentionBackend(...)\nexcept ValueError as e:\n    if \"SGLANG_DIFFUSION_ATTENTION_CONFIG\" in str(e):\n        os.environ['SGLANG_DIFFUSION_ATTENTION_CONFIG'] = DEFAULT_MASK_PATH\n        backend = SlidingTileAttentionBackend(...)","preventionTips":["Set and export the mask config env var in launch scripts","Fail fast at config validation if STA is selected without a mask file"],"tags":["sliding-tile-attention","missing-env-var","config","init"],"backgroundTag":"missing-env-var","analyzedSha":"0132848349585cfe6aae51c4941cbae872505f8a","analyzedAt":"2026-08-28T05:10:05.995Z","schemaVersion":2},"datasetVersion":"2026-08-28T06:17:29.519Z"}