{"record":{"id":"03a5044e1ea87426","repo":"apache/dolphinscheduler","slug":"invalid-status","errorCode":null,"errorMessage":"invalid status : ","messagePattern":"invalid status : ","errorType":"exception","errorClass":"IllegalArgumentException","httpStatus":null,"severity":"error","filePath":"dolphinscheduler-task-plugin/dolphinscheduler-task-api/src/main/java/org/apache/dolphinscheduler/plugin/task/api/enums/TaskTimeoutStrategy.java","lineNumber":56,"sourceCode":"    @EnumValue\n    private final int code;\n    private final String descp;\n\n    public int getCode() {\n        return code;\n    }\n\n    public String getDescp() {\n        return descp;\n    }\n\n    public static TaskTimeoutStrategy of(int status) {\n        for (TaskTimeoutStrategy es : values()) {\n            if (es.getCode() == status) {\n                return es;\n            }\n        }\n        throw new IllegalArgumentException(\"invalid status : \" + status);\n    }\n\n}\n","sourceCodeStart":38,"sourceCodeEnd":60,"githubUrl":"https://github.com/apache/dolphinscheduler/blob/02eac45a1b6676e639fcbfb4be2243de5771b05d/dolphinscheduler-task-plugin/dolphinscheduler-task-api/src/main/java/org/apache/dolphinscheduler/plugin/task/api/enums/TaskTimeoutStrategy.java#L38-L60","documentation":"TaskTimeoutStrategy.of(status) throws IllegalArgumentException when the supplied integer does not match any timeout strategy code. TaskTimeoutStrategy enumerates how a task timeout is handled (e.g. WARN, FAILED, WARNFAILED); an unmapped code indicates a bad configuration value or wrong enum being consulted.","triggerScenarios":"Calling of() with an int not equal to 0 (WARN), 1 (FAILED) or 3 (WARNFAILED) — typically when parsing the timeout strategy field from task params JSON, the workflow definition DB, or an API request that supplies an out-of-range or legacy value.","commonSituations":"Hand-edited task JSON with a wrong timeout strategy value; importing workflow definitions exported from a different DolphinScheduler version with different enum codes; API callers sending 2 or other invalid codes; confusing TaskTimeoutStrategy codes with TaskExecuteTimeoutStrategy or other enums.","solutions":["Use only documented values (WARN=0, FAILED=1, WARNFAILED=3) in task parameters and API payloads.","Check the source of the bad integer — the timeout strategy field in the task definition JSON or DB — and correct it to a valid code.","Prefer passing the enum constant (TaskTimeoutStrategy.FAILED) instead of raw ints in internal code.","Catch IllegalArgumentException when parsing user-supplied values and fall back to a default strategy."],"exampleFix":"// before\nTaskTimeoutStrategy strategy = TaskTimeoutStrategy.of(userInput);\n\n// after: validate before parsing\nint code = Integer.parseInt(userInput);\nif (code != 0 && code != 1 && code != 3) {\n    throw new IllegalArgumentException(\"timeout strategy must be 0, 1 or 3: \" + code);\n}\nTaskTimeoutStrategy strategy = TaskTimeoutStrategy.of(code);","handlingStrategy":"validation","validationCode":"static boolean isValidTimeoutStrategy(int code) {\n    return code == 0 || code == 1 || code == 3; // WARN, FAILED, WARNFAILED\n}","typeGuard":"static Optional<TaskTimeoutStrategy> safeOf(int status) {\n    return Arrays.stream(TaskTimeoutStrategy.values())\n            .filter(es -> es.getCode() == status)\n            .findFirst();\n}","tryCatchPattern":"try {\n    strategy = TaskTimeoutStrategy.of(rawCode);\n} catch (IllegalArgumentException e) {\n    log.warn(\"Invalid timeout strategy {}, falling back to FAILED\", rawCode);\n    strategy = TaskTimeoutStrategy.FAILED;\n}","preventionTips":["Only set timeout strategy via the UI/enum constants; avoid hand-editing task JSON.","Remember WARNFAILED shares code 3; don't invent new codes for combined behavior.","When importing workflow definitions from another version, re-validate timeout strategy fields.","Frontend/API: constrain the timeout strategy input to the documented enum codes."],"tags":["java","enum","timeout","configuration"],"backgroundTag":"invalid-enum-value","analyzedSha":"02eac45a1b6676e639fcbfb4be2243de5771b05d","analyzedAt":"2026-09-06T17:43:00.555Z","contentChangedAt":"2026-09-06T17:43:00.555Z","schemaVersion":2},"datasetVersion":"2026-09-14T00:17:10.932Z"}