{"record":{"id":"ae61dc2208c35cc8","repo":"apache/dolphinscheduler","slug":"the-dependent-task-s-project-is-not-exist-depende","errorCode":null,"errorMessage":"The dependent task's project is not exist, dependentItem: ${dependentItem}","messagePattern":"The dependent task's project 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":162,"sourceCode":"        }\n\n        projectCodeMap = projectDao.queryByCodes(new ArrayList<>(projectCodes)).stream()\n                .collect(Collectors.toMap(Project::getCode, Function.identity()));\n        processDefinitionMap =\n                workflowDefinitionDao.queryByCodes(processDefinitionCodes).stream()\n                        .collect(Collectors.toMap(WorkflowDefinition::getCode, Function.identity()));\n        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: {}\",","sourceCodeStart":144,"sourceCodeEnd":180,"githubUrl":"https://github.com/apache/dolphinscheduler/blob/02eac45a1b6676e639fcbfb4be2243de5771b05d/dolphinscheduler-master/src/main/java/org/apache/dolphinscheduler/server/master/engine/executor/plugin/dependent/DependentTaskTracker.java#L144-L180","documentation":"DependentTaskTracker.initializeDependentTaskList validates each dependent item's projectCode against the pre-fetched project map; when the project does not exist it logs and throws this RuntimeException, aborting the dependent task since its dependencies cannot be evaluated.","triggerScenarios":"A dependent task item references a projectCode that is absent from projectCodeMap — typically because the project was deleted while workflows still depend on it.","commonSituations":"Deleting a project that other workflows' dependent tasks reference, cross-project dependency after project deletion/renumbering, or metadata DB restored from a backup.","solutions":["Recreate the missing project (or its metadata) or edit every dependent task to remove/update the stale project reference","Query t_ds_project for the projectCode to confirm it is truly gone","Re-save the dependent task via the UI so dependent items are revalidated"],"exampleFix":"// before: dependent item points to projectCode 12345 (deleted)\n// after: edit the dependent task in the UI to reference an existing project\n{\"projectCode\": 987654321, \"definitionCode\": 111, \"depTaskCode\": \"ALL\"}","handlingStrategy":"validation","validationCode":"for (DependentItem item : items) {\n    if (projectClient.queryProjectByCode(item.getProjectCode()) == null) {\n        throw new IllegalStateException(\"dependent project missing: \" + item.getProjectCode());\n    }\n}","typeGuard":null,"tryCatchPattern":"try {\n    tracker.initializeDependentTaskList();\n} catch (RuntimeException e) {\n    if (e.getMessage().contains(\"project is not exist\")) {\n        taskFailed(\"Dependent project deleted; fix dependent items\");\n    }\n}","preventionTips":["Before deleting a project, search all dependent tasks referencing it","Use soft-delete/audit checks in cleanup scripts","Periodically run a metadata integrity check for dangling 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"}