{"record":{"id":"376906a17de7e3de","repo":"vllm-project/vllm","slug":"custom-ops-can-contain-only-one-base-mode-all-o","errorCode":null,"errorMessage":"custom_ops can contain only one base mode: 'all' or 'none'","messagePattern":"custom_ops can contain only one base mode: 'all' or 'none'","errorType":"validation","errorClass":"ValueError","httpStatus":null,"severity":"error","filePath":"vllm/config/compilation.py","lineNumber":1008,"sourceCode":"            \"2.9.0.dev\"\n        ):\n            raise ValueError(\n                \"use_inductor_graph_partition is only \"\n                \"supported with torch>=2.9.0.dev. Set \"\n                \"use_inductor_graph_partition=False instead.\"\n            )\n\n        for op in self.custom_ops:\n            if op not in {\"all\", \"none\"} and (len(op) < 2 or op[0] not in {\"+\", \"-\"}):\n                raise ValueError(\n                    f\"Invalid syntax '{op}' for custom op, \"\n                    \"must be 'all', 'none', '+op' or '-op' \"\n                    \"(where 'op' is the registered op name)\"\n                )\n\n        base_modes = [op for op in self.custom_ops if op in {\"all\", \"none\"}]\n        if len(base_modes) > 1:\n            raise ValueError(\n                \"custom_ops can contain only one base mode: 'all' or 'none'\"\n            )\n\n        enabled_ops = {op[1:] for op in self.custom_ops if op.startswith(\"+\")}\n        disabled_ops = {op[1:] for op in self.custom_ops if op.startswith(\"-\")}\n        conflicting_ops = sorted(enabled_ops & disabled_ops)\n        if conflicting_ops:\n            raise ValueError(\n                \"custom_ops cannot both enable and disable the same operation(s): \"\n                f\"{', '.join(conflicting_ops)}. Remove either the '+' or '-' directive\"\n            )\n\n        # Currently only eager and inductor backend are supported.\n        # for piecewise compilation. Custom backends are not supported for\n        # piecewise compilation. Update when more backends are supported.\n        if self.mode == CompilationMode.VLLM_COMPILE and self.backend not in [\n            \"\",\n            \"eager\",","sourceCodeStart":990,"sourceCodeEnd":1026,"githubUrl":"https://github.com/vllm-project/vllm/blob/c794754062d49a8fdb63ab3c5215b488b865030c/vllm/config/compilation.py#L990-L1026","documentation":"Error \"custom_ops can contain only one base mode: 'all' or 'none'\" thrown in vllm-project/vllm.","triggerScenarios":"Raised at vllm/config/compilation.py:1008 when validation fails: custom_ops can contain only one base mode: 'all' or 'none'. Typically triggered by an incompatible or incomplete vLLM configuration, an unsupported platform/backend combination, or a runtime resource/dependency that is missing.","commonSituations":"Commonly encountered at vllm/config/compilation.py:1008 during vLLM startup/config validation or runtime setup when: (1) conflicting CLI flags or config fields are combined, (2) the current platform (CUDA/ROCm/CPU/XPU) or installed optional packages do not support the requested feature, or (3) a required value is absent or out of range. Resolve by correcting the configuration as described in the message, or by selecting a supported alternative.","solutions":["Use exactly one base mode in custom_ops: either 'all' or 'none', then add '+op'/'-op' entries.","Example: --compilation-config '{\"custom_ops\":[\"none\",\"+rms_norm\"]}'."],"exampleFix":null,"handlingStrategy":null,"validationCode":null,"typeGuard":null,"tryCatchPattern":null,"preventionTips":[],"tags":[],"backgroundTag":null,"analyzedSha":"c794754062d49a8fdb63ab3c5215b488b865030c","analyzedAt":"2026-08-14T21:17:39.825Z","schemaVersion":2},"datasetVersion":"2026-08-15T22:17:37.221Z"}