diff --git a/turbopack/crates/turbo-tasks-backend/src/backend/operation/mod.rs b/turbopack/crates/turbo-tasks-backend/src/backend/operation/mod.rs index e23f62df69da5..a2103124bb62e 100644 --- a/turbopack/crates/turbo-tasks-backend/src/backend/operation/mod.rs +++ b/turbopack/crates/turbo-tasks-backend/src/backend/operation/mod.rs @@ -144,7 +144,7 @@ impl<'a> TaskGuard<'a> { } pub fn add(&mut self, item: CachedDataItem) -> bool { - if !item.is_persistent() { + if self.task_id.is_transient() || !item.is_persistent() { self.task.add(item) } else if self.task.add(item.clone()) { let (key, value) = item.into_key_and_value(); @@ -165,7 +165,7 @@ impl<'a> TaskGuard<'a> { pub fn insert(&mut self, item: CachedDataItem) -> Option { let (key, value) = item.into_key_and_value(); - if !key.is_persistent() { + if self.task_id.is_transient() || !key.is_persistent() { self.task .insert(CachedDataItem::from_key_and_value(key, value)) } else if value.is_persistent() { @@ -209,7 +209,7 @@ impl<'a> TaskGuard<'a> { key: &CachedDataItemKey, update: impl FnOnce(Option) -> Option, ) { - if !key.is_persistent() { + if self.task_id.is_transient() || !key.is_persistent() { self.task.update(key, update); return; } @@ -254,7 +254,7 @@ impl<'a> TaskGuard<'a> { pub fn remove(&mut self, key: &CachedDataItemKey) -> Option { let old_value = self.task.remove(key); if let Some(value) = old_value { - if key.is_persistent() && value.is_persistent() { + if !self.task_id.is_transient() && key.is_persistent() && value.is_persistent() { let key = key.clone(); self.task.persistance_state.add_persisting_item(); self.backend