diff --git a/turbopack/crates/turbo-tasks-backend/src/backend/operation/connect_child.rs b/turbopack/crates/turbo-tasks-backend/src/backend/operation/connect_child.rs index f51f1db1613370..b3907850708789 100644 --- a/turbopack/crates/turbo-tasks-backend/src/backend/operation/connect_child.rs +++ b/turbopack/crates/turbo-tasks-backend/src/backend/operation/connect_child.rs @@ -31,9 +31,15 @@ pub enum ConnectChildOperation { impl ConnectChildOperation { pub fn run(parent_task_id: TaskId, child_task_id: TaskId, mut ctx: ExecuteContext<'_>) { let mut parent_task = ctx.task(parent_task_id, TaskDataCategory::All); - parent_task.remove(&CachedDataItemKey::OutdatedChild { - task: child_task_id, - }); + // Quick skip if the child was already connected before + if parent_task + .remove(&CachedDataItemKey::OutdatedChild { + task: child_task_id, + }) + .is_some() + { + return; + } if parent_task.add(CachedDataItem::Child { task: child_task_id, value: (),