diff --git a/src/queue.ts b/src/queue.ts index cc09e36..0c6d7c4 100644 --- a/src/queue.ts +++ b/src/queue.ts @@ -127,10 +127,14 @@ export class TaskQueue { this.active.delete(workspaceName); try { + await this.coder.stopWorkspace(entry.workspaceId); + console.log(`[queue] workspace stopped: ${workspaceName} — waiting for shutdown`); + // Wait for the workspace to fully stop before deleting + await new Promise((resolve) => setTimeout(resolve, 10_000)); await this.coder.deleteWorkspace(entry.workspaceId); console.log(`[queue] workspace deleted: ${workspaceName}`); } catch (err) { - console.error(`[queue] failed to delete workspace ${workspaceName}:`, err); + console.error(`[queue] failed to clean up workspace ${workspaceName}:`, err); } // Drain in case pending tasks were waiting for capacity