{"record":{"id":"ea7e73dcfc0183fb","repo":"apache/dolphinscheduler","slug":"datafactory-runid-is-null-not-created-yet","errorCode":null,"errorMessage":"datafactory runId is null, not created yet","messagePattern":"datafactory runId is null, not created yet","errorType":"exception","errorClass":"TaskException","httpStatus":null,"severity":"error","filePath":"dolphinscheduler-task-plugin/dolphinscheduler-task-datafactory/src/main/java/org/apache/dolphinscheduler/plugin/task/datafactory/DatafactoryTask.java","lineNumber":101,"sourceCode":"    public void trackApplicationStatus() throws TaskException {\n        checkApplicationId();\n        Boolean isFinishedSuccessfully;\n        isFinishedSuccessfully = hook.queryStatus(parameters);\n        if (!isFinishedSuccessfully) {\n            exitStatusCode = TaskConstants.EXIT_CODE_FAILURE;\n        } else {\n            exitStatusCode = TaskConstants.EXIT_CODE_SUCCESS;\n        }\n    }\n\n    /**\n     * check datafactory applicationId or get it from appId\n     */\n    private void checkApplicationId() {\n        String taskExecArn = hook.getRunId();\n        if (StringUtils.isEmpty(taskExecArn)) {\n            if (StringUtils.isEmpty(getAppIds())) {\n                throw new TaskException(\"datafactory runId is null, not created yet\");\n            }\n            hook.setRunId(getAppIds());\n        }\n    }\n\n    public int startDatafactoryTask() {\n        Boolean isStartSuccessfully = hook.startDatafactoryTask(parameters);\n        if (!isStartSuccessfully) {\n            return TaskConstants.EXIT_CODE_FAILURE;\n        }\n        return TaskConstants.EXIT_CODE_SUCCESS;\n    }\n\n    @Override\n    public DatafactoryParameters getParameters() {\n        return parameters;\n    }\n","sourceCodeStart":83,"sourceCodeEnd":119,"githubUrl":"https://github.com/apache/dolphinscheduler/blob/02eac45a1b6676e639fcbfb4be2243de5771b05d/dolphinscheduler-task-plugin/dolphinscheduler-task-datafactory/src/main/java/org/apache/dolphinscheduler/plugin/task/datafactory/DatafactoryTask.java#L83-L119","documentation":"A state guard in checkApplicationId: hook.getRunId() returned null/empty because the Data Factory pipeline run has not been created yet (submitApplication not completed or failed before a runId was captured), so tracking or cancelling has no run to act on. The faulty state is the missing runId in the DatafactoryHook after task submission.","triggerScenarios":"Thrown at dolphinscheduler-task-plugin/dolphinscheduler-task-datafactory/src/main/java/org/apache/dolphinscheduler/plugin/task/datafactory/DatafactoryTask.java:101 when the library encounters an invalid state.","commonSituations":"See trigger scenarios.","solutions":["Ensure submitApplication succeeded before trackApplicationStatus/cancelApplication are invoked","Check the submit-phase logs for why the pipeline run id was never stored","Re-submit the task so a new run id is obtained"],"exampleFix":null,"handlingStrategy":"validation","validationCode":null,"typeGuard":null,"tryCatchPattern":null,"preventionTips":[],"tags":[],"backgroundTag":null,"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"}