From f0ac6327329015127820426b129dabda4dc1bc6d Mon Sep 17 00:00:00 2001 From: Mohamed Boudra Date: Tue, 14 Apr 2026 20:54:11 +0700 Subject: [PATCH] fix: isolate git snapshot errors per workspace in fetch_workspaces A single workspace failing to load git data (e.g. empty repo, corrupt git state) was crashing the entire fetch_workspaces response, leaving all users with an unusable app. Now errors are caught per-workspace and logged as warnings, returning the workspace without git data. --- packages/server/src/server/session.ts | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/packages/server/src/server/session.ts b/packages/server/src/server/session.ts index 0b0906f33..1dcc805e9 100644 --- a/packages/server/src/server/session.ts +++ b/packages/server/src/server/session.ts @@ -5443,7 +5443,17 @@ export class Session { projectRecord?: PersistedProjectRecord | null, ): Promise { const base = await this.describeWorkspaceRecord(workspace, projectRecord); - const snapshot = await this.workspaceGitService.getSnapshot(workspace.cwd); + + let snapshot: WorkspaceGitRuntimeSnapshot; + try { + snapshot = await this.workspaceGitService.getSnapshot(workspace.cwd); + } catch (error) { + this.sessionLogger.warn( + { err: error, cwd: workspace.cwd }, + "Failed to load git snapshot for workspace", + ); + return base; + } const checkout = checkoutLiteFromGitSnapshot(workspace.cwd, snapshot.git); const displayName = deriveWorkspaceDisplayName({ cwd: workspace.cwd, checkout });