apache/dolphinscheduler · error · java.lang.RuntimeException
The dependent task's project is not exist, dependentItem: ${
Error message
The dependent task's project is not exist, dependentItem: ${dependentItem} What it means
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.
Source
Thrown at dolphinscheduler-master/src/main/java/org/apache/dolphinscheduler/server/master/engine/executor/plugin/dependent/DependentTaskTracker.java:162
}
projectCodeMap = projectDao.queryByCodes(new ArrayList<>(projectCodes)).stream()
.collect(Collectors.toMap(Project::getCode, Function.identity()));
processDefinitionMap =
workflowDefinitionDao.queryByCodes(processDefinitionCodes).stream()
.collect(Collectors.toMap(WorkflowDefinition::getCode, Function.identity()));
taskDefinitionMap = taskDefinitionDao.queryByCodes(taskDefinitionCodes).stream()
.collect(Collectors.toMap(TaskDefinition::getCode, Function.identity()));
final TaskInstance taskInstance =
taskInstanceDao.queryById(taskExecutionContext.getTaskInstanceId());
List<DependentExecute> dependentExecutes = dependTaskList
.stream()
.map(dependentTaskModel -> {
for (DependentItem dependentItem : dependentTaskModel.getDependItemList()) {
Project project = projectCodeMap.get(dependentItem.getProjectCode());
if (project == null) {
log.error("The dependent task's project is not exist, dependentItem: {}", dependentItem);
throw new RuntimeException(
"The dependent task's project is not exist, dependentItem: " + dependentItem);
}
WorkflowDefinition workflowDefinition =
processDefinitionMap.get(dependentItem.getDefinitionCode());
if (workflowDefinition == null) {
log.error("The dependent task's workflow is not exist, dependentItem: {}", dependentItem);
throw new RuntimeException(
"The dependent task's workflow is not exist, dependentItem: " + dependentItem);
}
if (dependentItem.getDepTaskCode() == Constants.DEPENDENT_ALL_TASK_CODE) {
log.info(
"Add dependent all task, ProjectName: {}, WorkflowName: {}, WorkflowCode: {}, DependentCycle: {}, DependentCycleDate: {}, DependentRelation: {}",
project.getName(), workflowDefinition.getName(), workflowDefinition.getCode(),
dependentItem.getCycle(), dependentItem.getDateValue(),
dependentTaskModel.getRelation());
} else if (dependentItem.getDepTaskCode() == Constants.DEPENDENT_WORKFLOW_CODE) {
log.info(
"Add dependent workflow task, ProjectName: {}, WorkflowName: {}, WorkflowCode: {}, DependentCycle: {}, DependentCycleDate: {}, DependentRelation: {}",View on GitHub (pinned to 02eac45a1b)
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
Example fix
// before: dependent item points to projectCode 12345 (deleted)
// after: edit the dependent task in the UI to reference an existing project
{"projectCode": 987654321, "definitionCode": 111, "depTaskCode": "ALL"} Defensive patterns
Strategy: validation
Validate before calling
for (DependentItem item : items) {
if (projectClient.queryProjectByCode(item.getProjectCode()) == null) {
throw new IllegalStateException("dependent project missing: " + item.getProjectCode());
}
} Try / catch
try {
tracker.initializeDependentTaskList();
} catch (RuntimeException e) {
if (e.getMessage().contains("project is not exist")) {
taskFailed("Dependent project deleted; fix dependent items");
}
} Prevention
- 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
When it happens
Trigger: A dependent task item references a projectCode that is absent from projectCodeMap — typically because the project was deleted while workflows still depend on it.
Common situations: Deleting a project that other workflows' dependent tasks reference, cross-project dependency after project deletion/renumbering, or metadata DB restored from a backup.
Understand the failure class
Background: "Not found" and "does not exist" errors: why "Task not found", "No such folder", and "Can't find" fire when a lookup comes back empty — this error's family across 14 libraries.
Related errors
- The dependent task's workflow is not exist, dependentItem: $
- The dependent task's taskDefinition is not exist, dependentI
- Recover workflow instance failed: %s
- no master server available
- Repeat running workflow instance failed: %s
AI-assisted analysis of apache/dolphinscheduler@02eac45a1b (2026-09-06).
Data as JSON: /api/errors/ae61dc2208c35cc8.
Report an issue: GitHub.