{"record":{"id":"db795cd939e3e6a1","repo":"sgl-project/sglang","slug":"scheduler-type-self-config-scheduler-type-not","errorCode":null,"errorMessage":"Scheduler type '{self.config.scheduler_type}' not implemented","messagePattern":"Scheduler type '(.+?)' not implemented","errorType":"exception","errorClass":"NotImplementedError","httpStatus":null,"severity":"error","filePath":"python/sglang/multimodal_gen/runtime/models/schedulers/scheduling_helios.py","lineNumber":718,"sourceCode":"                return_dict=return_dict,\n            )\n        elif self.config.scheduler_type == \"unipc\":\n            return self.step_unipc(\n                model_output=model_output,\n                timestep=timestep,\n                sample=sample,\n                return_dict=return_dict,\n            )\n        elif self.config.scheduler_type == \"dmd\":\n            return self.step_dmd(\n                model_output=model_output,\n                timestep=timestep,\n                sample=sample,\n                return_dict=return_dict,\n                **kwargs,\n            )\n        else:\n            raise NotImplementedError(\n                f\"Scheduler type '{self.config.scheduler_type}' not implemented\"\n            )\n\n    def reset_scheduler_history(self):\n        self.model_outputs = [None] * self.config.solver_order\n        self.timestep_list = [None] * self.config.solver_order\n        self.lower_order_nums = 0\n        self.disable_corrector = self.config.disable_corrector\n        self.solver_p = None\n        self.last_sample = None\n        self._step_index = None\n        self._begin_index = None\n\n    def set_shift(self, shift: float):\n        \"\"\"Update the shift parameter (called by SchedulerLoader after loading).\"\"\"\n        self.config.shift = shift\n        self.shift = shift\n","sourceCodeStart":700,"sourceCodeEnd":736,"githubUrl":"https://github.com/sgl-project/sglang/blob/0132848349585cfe6aae51c4941cbae872505f8a/python/sglang/multimodal_gen/runtime/models/schedulers/scheduling_helios.py#L700-L736","documentation":"HeliusScheduler.step() dispatches on self.config.scheduler_type and only implements specific solver types (e.g. the UniPC branch above); any other string hits the NotImplementedError. The scheduler_type string in the config does not match a compiled-in branch.","triggerScenarios":"Loading a model/pipeline whose config.json sets scheduler_type to a value with no branch in step() (e.g. 'euler', 'ddim', or a typo like 'unipcmultistepscheduler ').","commonSituations":"Swapping scheduler configs between diffusion models; version upgrades that rename scheduler types; typos or wrong-casing in a custom config.","solutions":["Check the exact value of config.scheduler_type in your model config and align it with one of the types handled in step() (read the if/elif chain just above the raise)","If you intended a standard diffusers scheduler, use that scheduler class directly instead of HeliosScheduler","If the type should be supported, add an elif branch or fix the config string (watch for trailing spaces / case)"],"exampleFix":"# before\nscheduler = HeliosScheduler.from_config({\"scheduler_type\": \"euler\"})\nscheduler.step(...)  # NotImplementedError\n\n# after\nscheduler = HeliosScheduler.from_config({\"scheduler_type\": \"unipc\"})  # a supported type\nscheduler.set_timesteps(50)\nscheduler.step(...)","handlingStrategy":"type-guard","validationCode":"supported = {b.comparators[0].value for ...}  # or hard-code from step()\nassert config.scheduler_type in SUPPORTED_TYPES, f\"unsupported scheduler_type {config.scheduler_type!r}\"","typeGuard":"SUPPORTED_SCHEDULER_TYPES = {\"unipc\"}  # keep in sync with step()\ndef is_supported_scheduler_type(name: str) -> bool:\n    return name.strip().lower() in SUPPORTED_SCHEDULER_TYPES","tryCatchPattern":"try:\n    scheduler.step(...)\nexcept NotImplementedError as e:\n    raise RuntimeError(f\"Config uses unsupported scheduler {config.scheduler_type!r}; switch to a supported type\") from e","preventionTips":["Validate scheduler_type at config-load time, not at first step","Pin the library version that supports your scheduler type"],"tags":["diffusion","scheduler","not-implemented","config-mismatch"],"backgroundTag":"unsupported-scheduler-type","analyzedSha":"0132848349585cfe6aae51c4941cbae872505f8a","analyzedAt":"2026-08-28T05:10:05.995Z","schemaVersion":2},"datasetVersion":"2026-08-28T06:17:29.519Z"}