diff --git a/packages/server/src/server/hub/test-utils/relationship-harness.ts b/packages/server/src/server/hub/test-utils/relationship-harness.ts index 819fb8d85..3fdff778a 100644 --- a/packages/server/src/server/hub/test-utils/relationship-harness.ts +++ b/packages/server/src/server/hub/test-utils/relationship-harness.ts @@ -1322,7 +1322,9 @@ export class HubRelationshipHarness { } private async removeRoot(): Promise { - const retryableCodes = new Set(["EBUSY", "ENOTEMPTY"]); + // Daemon may still flush into .paseo/projects during teardown; recursive rm + // can race and hit ENOTEMPTY/EBUSY/EPERM. Observed on Linux CI as well as macOS/Windows. + const retryableCodes = new Set(["ENOTEMPTY", "EBUSY", "EPERM"]); const attempts = 10; for (let attempt = 1; attempt <= attempts; attempt++) { try {