{"record":{"id":"d66370965a0d279f","repo":"apache/dolphinscheduler","slug":"the-dependent-task-s-workflow-is-not-exist-depend","errorCode":null,"errorMessage":"The dependent task's workflow is not exist, dependentItem: ${dependentItem}","messagePattern":"The dependent task's workflow is not exist, dependentItem: (.+?)","errorType":"exception","errorClass":"java.lang.RuntimeException","httpStatus":null,"severity":"error","filePath":"dolphinscheduler-master/src/main/java/org/apache/dolphinscheduler/server/master/engine/executor/plugin/dependent/DependentTaskTracker.java","lineNumber":169,"sourceCode":"        taskDefinitionMap = taskDefinitionDao.queryByCodes(taskDefinitionCodes).stream()\n                .collect(Collectors.toMap(TaskDefinition::getCode, Function.identity()));\n        final TaskInstance taskInstance =\n                taskInstanceDao.queryById(taskExecutionContext.getTaskInstanceId());\n        List<DependentExecute> dependentExecutes = dependTaskList\n                .stream()\n                .map(dependentTaskModel -> {\n                    for (DependentItem dependentItem : dependentTaskModel.getDependItemList()) {\n                        Project project = projectCodeMap.get(dependentItem.getProjectCode());\n                        if (project == null) {\n                            log.error(\"The dependent task's project is not exist, dependentItem: {}\", dependentItem);\n                            throw new RuntimeException(\n                                    \"The dependent task's project is not exist, dependentItem: \" + dependentItem);\n                        }\n                        WorkflowDefinition workflowDefinition =\n                                processDefinitionMap.get(dependentItem.getDefinitionCode());\n                        if (workflowDefinition == null) {\n                            log.error(\"The dependent task's workflow is not exist, dependentItem: {}\", dependentItem);\n                            throw new RuntimeException(\n                                    \"The dependent task's workflow is not exist, dependentItem: \" + dependentItem);\n                        }\n                        if (dependentItem.getDepTaskCode() == Constants.DEPENDENT_ALL_TASK_CODE) {\n                            log.info(\n                                    \"Add dependent all task, ProjectName: {}, WorkflowName: {}, WorkflowCode: {}, DependentCycle: {}, DependentCycleDate: {}, DependentRelation: {}\",\n                                    project.getName(), workflowDefinition.getName(), workflowDefinition.getCode(),\n                                    dependentItem.getCycle(), dependentItem.getDateValue(),\n                                    dependentTaskModel.getRelation());\n                        } else if (dependentItem.getDepTaskCode() == Constants.DEPENDENT_WORKFLOW_CODE) {\n                            log.info(\n                                    \"Add dependent workflow task, ProjectName: {}, WorkflowName: {}, WorkflowCode: {}, DependentCycle: {}, DependentCycleDate: {}, DependentRelation: {}\",\n                                    project.getName(), workflowDefinition.getName(), workflowDefinition.getCode(),\n                                    dependentItem.getCycle(), dependentItem.getDateValue(),\n                                    dependentTaskModel.getRelation());\n                        } else {\n                            TaskDefinition taskDefinition = taskDefinitionMap.get(dependentItem.getDepTaskCode());\n                            if (taskDefinition == null) {\n                                log.error(\"The dependent task's taskDefinition is not exist, dependentItem: {}\",","sourceCodeStart":151,"sourceCodeEnd":187,"githubUrl":"https://github.com/apache/dolphinscheduler/blob/02eac45a1b6676e639fcbfb4be2243de5771b05d/dolphinscheduler-master/src/main/java/org/apache/dolphinscheduler/server/master/engine/executor/plugin/dependent/DependentTaskTracker.java#L151-L187","documentation":"After validating the project, initializeDependentTaskList checks each dependent item's definitionCode against the loaded workflow definition map; a missing WorkflowDefinition means the referenced workflow was deleted or is invisible to this scheduler, so a RuntimeException is thrown and the dependent task cannot run.","triggerScenarios":"A dependent item's workflow (definitionCode) no longer exists in processDefinitionMap — the workflow was deleted, the dependency was never updated, or the definition belongs to another project not loaded.","commonSituations":"Deleting a workflow that downstream dependent tasks reference, moving workflows between projects, or DB cleanup scripts removing definitions still referenced by dependent tasks.","solutions":["Open each dependent task and remove/replace the dependency pointing at the deleted workflow","Recreate the missing workflow if it was deleted accidentally","Check t_ds_process_definition for the definitionCode to verify whether it exists or was soft-deleted"],"exampleFix":"// before: dependentItem references definitionCode 111 (workflow deleted)\n// after: update the dependent task to point at an existing workflow's definitionCode","handlingStrategy":"validation","validationCode":"if (processDefinitionDao.find_by_code(item.getDefinitionCode()) == null) {\n    // dependent workflow missing — alert before scheduling\n}","typeGuard":null,"tryCatchPattern":"try {\n    tracker.initializeDependentTaskList();\n} catch (RuntimeException e) {\n    if (e.getMessage().contains(\"workflow is not exist\")) {\n        taskFailed(\"Dependent workflow deleted\");\n    }\n}","preventionTips":["Check for downstream dependent tasks before deleting workflows","Update dependent tasks after moving workflows between projects","Run referential-integrity checks on t_ds_process_definition vs dependent items"],"tags":["dependent-task","data-integrity","master-server"],"backgroundTag":"entity-not-found","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"}