Thanks to visit codestin.com
Credit goes to github.com

Skip to content

fix: handle transient failures during remote workspace creation#84

Merged
wesbillman merged 2 commits intomainfrom
remote-create-failure
Feb 12, 2026
Merged

fix: handle transient failures during remote workspace creation#84
wesbillman merged 2 commits intomainfrom
remote-create-failure

Conversation

@wesbillman
Copy link
Collaborator

@wesbillman wesbillman commented Feb 12, 2026

Summary

  • Tolerate blox ws start failures during creation: Instead of immediately setting Error status when blox ws start fails (e.g. timeout, transient network issue), leave status as Starting and let polling resolve the real state.
  • Tolerate workspace not-found during polling: When blox ws info fails while the DB status is still Starting (workspace hasn't materialized yet), return Starting instead of erroring so the frontend keeps polling.
  • Add frontend polling resilience: Keep polling on frontend errors when status is still starting, and add a 5-minute safety timeout to avoid infinite polling loops.

Test plan

  • Create a remote workspace and verify it provisions successfully
  • Simulate a slow blox ws start and verify polling recovers
  • Verify polling stops after 5 minutes if workspace never materializes

🤖 Generated with Claude Code

wesbillman and others added 2 commits February 12, 2026 13:19
When creating a remote branch, there is a race condition between
`startWorkspace` (which calls `blox ws start`) and the frontend's
status polling (which calls `blox ws info` every 3s). If the first
poll fires before `blox ws start` completes, `blox ws info` fails
with 'workstation not found', causing the card to incorrectly show
an error state.

Backend (poll_workspace_status): When `blox ws info` fails and the
DB status is still Starting, return Starting instead of propagating
the error. This lets the frontend keep polling until the workspace
actually exists.

Frontend (RemoteBranchCard): As a safety net, don't treat poll errors
as fatal when local status is still 'starting' — log a debug message
and continue polling instead of setting error state and stopping.
When `blox ws start` fails (e.g. timeout, transient network error),
`start_workspace` was immediately setting the DB status to Error.
This defeated the "stopped during Starting" protection in
`poll_workspace_status`: when `blox ws info` later reported "stopped"
(workspace still booting), the poll saw DB=Error instead of DB=Starting,
so it mapped the status to Stopped and the frontend stopped polling —
even though the workspace was actually coming up and would soon be
Running.

Fix: don't update the DB on `blox ws start` failure. Keep the status
at Starting and let the polling loop determine the real state. The
poll already handles all transitions (Running, Stopped, Error) and
has protections for transient "stopped" reports during startup.

Also add a 5-minute polling timeout so a workspace that truly never
materializes doesn't poll forever.

Co-Authored-By: Claude Opus 4.6 <[email protected]>
@wesbillman wesbillman merged commit fecf54f into main Feb 12, 2026
3 checks passed
@wesbillman wesbillman deleted the remote-create-failure branch February 12, 2026 21:35
loganj added a commit that referenced this pull request Feb 26, 2026
feat: Cmd+F find-in-page for Tauri app

Uses CSS Custom Highlight API for zero-focus-stealing search with
match count, next/prev navigation, and auto-scroll to matches.
Only active in desktop app — browser gets native Cmd+F.

Co-Authored-By: Claude Opus 4.6 <[email protected]>

feat: Cmd+N new window, Cmd+Shift+[/] tab nav, multi-window fixes

- Cmd+N opens a new window from Rust
- Cmd+Shift+[ and Cmd+Shift+] navigate prev/next tab
- Cmd+W closes the window when only one tab remains
- Menu events now dispatch to the focused window (not just main)
- Window capabilities extended to all windows (win-*)
- App stays running on macOS when all windows are closed
- Dock icon click re-opens a window

Co-Authored-By: Claude Opus 4.6 <[email protected]>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant