{"record":{"id":"0149df594b5ab639","repo":"apache/dolphinscheduler","slug":"the-task-execution-status-code-s-is-invalidated","errorCode":null,"errorMessage":"The task execution status code: %s is invalidated","messagePattern":"The task execution status code: (.+?) is invalidated","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/TaskExecutionStatus.java","lineNumber":55,"sourceCode":"    DISPATCH(17, \"dispatch\"),\n\n    ;\n\n    private static final Map<Integer, TaskExecutionStatus> CODE_MAP = new HashMap<>();\n\n    static {\n        for (TaskExecutionStatus executionStatus : TaskExecutionStatus.values()) {\n            CODE_MAP.put(executionStatus.getCode(), executionStatus);\n        }\n    }\n\n    /**\n     * Get <code>TaskExecutionStatus</code> by code, if the code is invalidated will throw {@link IllegalArgumentException}.\n     */\n    public static TaskExecutionStatus of(int code) {\n        TaskExecutionStatus taskExecutionStatus = CODE_MAP.get(code);\n        if (taskExecutionStatus == null) {\n            throw new IllegalArgumentException(String.format(\"The task execution status code: %s is invalidated\",\n                    code));\n        }\n        return taskExecutionStatus;\n    }\n\n    public boolean isRunning() {\n        return this == RUNNING_EXECUTION;\n    }\n\n    public boolean isSuccess() {\n        return this == TaskExecutionStatus.SUCCESS;\n    }\n\n    public boolean isForceSuccess() {\n        return this == TaskExecutionStatus.FORCED_SUCCESS;\n    }\n\n    public boolean isKill() {","sourceCodeStart":37,"sourceCodeEnd":73,"githubUrl":"https://github.com/apache/dolphinscheduler/blob/02eac45a1b6676e639fcbfb4be2243de5771b05d/dolphinscheduler-task-plugin/dolphinscheduler-task-api/src/main/java/org/apache/dolphinscheduler/plugin/task/api/enums/TaskExecutionStatus.java#L37-L73","documentation":"TaskExecutionStatus.of(code) throws IllegalArgumentException when the given integer is not a known task execution status code (registered in CODE_MAP). DolphinScheduler uses this enum to translate DB/API status codes into the enum; an unknown code means corrupted data, a version mismatch, or a programming bug rather than a runtime condition.","triggerScenarios":"Calling TaskExecutionStatus.of(int) with a code not produced by the enum (e.g. 99, -1, or a code from a newer/older DolphinScheduler version); deserializing a task instance from the database whose state column contains an out-of-range value; passing a ProcessExecutionStatus code into the task-status enum by mistake.","commonSituations":"Upgrading/downgrading DolphinScheduler so stored status codes no longer match the enum; hand-written SQL or ETL jobs writing invalid state values into t_ds_task_instance; API clients submitting an invalid state code; confusing task vs process execution status code spaces.","solutions":["Check the code being passed against the valid constants in TaskExecutionStatus (SUBMITTED_SUCCESS=0, RUNNING_EXECUTION=1, ... ) and fix the producer of the invalid code.","Use the enum constants instead of raw integers when converting (TaskExecutionStatus.RUNNING_EXECUTION rather than of(1)).","If data comes from the database, fix the corrupted state row or migrate it to a valid code per your DolphinScheduler version.","Guard with a map lookup or catch IllegalArgumentException when codes may come from external input."],"exampleFix":"// before\nTaskExecutionStatus status = TaskExecutionStatus.of(rawValue);\n\n// after: validate before converting\nTaskExecutionStatus status = Arrays.stream(TaskExecutionStatus.values())\n        .filter(s -> s.getCode() == rawValue)\n        .findFirst()\n        .orElseThrow(() -> new IllegalStateException(\"Unknown task status code: \" + rawValue));","handlingStrategy":"validation","validationCode":"static boolean isValidStatusCode(int code) {\n    return Arrays.stream(TaskExecutionStatus.values()).anyMatch(s -> s.getCode() == code);\n}\n// usage: if (!isValidStatusCode(code)) { log.warn(\"bad status code {}\", code); return; }","typeGuard":"static Optional<TaskExecutionStatus> safeOf(int code) {\n    return Arrays.stream(TaskExecutionStatus.values())\n            .filter(s -> s.getCode() == code)\n            .findFirst();\n}","tryCatchPattern":"try {\n    status = TaskExecutionStatus.of(code);\n} catch (IllegalArgumentException e) {\n    log.warn(\"Unknown task execution status code: {}, defaulting to FAILURE\", code);\n    status = TaskExecutionStatus.FAILURE;\n}","preventionTips":["Never pass raw integer literals; use TaskExecutionStatus enum constants in code.","Don't mix ProcessExecutionStatus and TaskExecutionStatus code spaces.","When migrating DolphinScheduler versions, remap stored DB state codes before conversion.","Validate API payloads against the documented status code table before deserialization."],"tags":["java","enum","status-code","illegal-argument"],"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-14T05:17:10.506Z"}