[Fix] Workspace stuck in Booting environment with no failure reason - #544
Conversation
|
1 issue outstanding. See task
Reviewed 596d8b8 |
|
@roomote-roomote @mrubens Hi! I've been testing this on my self-hosted setup and can confirm it resolves the issue. Test ResultsEnvironment:
Before Fix (v0.12.0)Workspace got stuck in "Booting environment" with no useful error feedback. Screenshot shows the raw failure without explanation. After Fix (PR #544)The fix works! The improved error handling now:
Additional Finding: CRLF Issue on Windows/MSYSWhile testing, I also discovered that several Files affected (copied into Docker image):
Fix: Summary✅ PR #544 fix confirmed working for the "Booting environment" stuck issue Thanks for the quick fix! 🎯 |
|
I saw the mention, but I need your GitHub account linked to Roomote before issue and PR comments can start work here. Link it from Settings -> Linked Accounts and then mention me again. |
Report Docker spawn stderr and action-oriented startup errors so self-hosted operators are not left on Booting environment with only a raw docker run command.
9d3cff7 to
03a0d08
Compare
…derr branch Review follow-ups: the timeout friendly copy promised logs the display path dropped (controller emits a Docker process list there), and the stderr detail branch in formatDockerCommandError was unreachable since reason always equals sanitized stderr when stderr is present. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
daniel-lxs
left a comment
There was a problem hiding this comment.
Reviewed the full diff plus follow-up commits: abort/cancel passthrough verified against the AbortSignal path, redaction covers argv/cmd/stderr/stdout and the empty-stderr message fallback, error-shape consumers (disk-limit retry, object-not-found detection) still match on the wrapped message, and the timeout display path now preserves the Docker process list. Tests and full CI green.
What changed
Failed environment boots no longer strand users on Booting environment with only a raw
docker rundump.-e/--envvalues redacted in every diagnostic path (including empty-stderrerror.messagefallback and stderr/stdout blocks)execFileerror ascause, and spawn failures are captured/rethrown as sanitized errors so Sentry LinkedErrors cannot store an unredactedAUTH_TOKENfetch failed, missing release archive) to clear guidance while keeping useful detailsdevelopso cancel/AbortSignalduring Docker provision is preserved (abort errors are not reformatted as spawn failures)Why this change was made
Self-hosted setups often failed behind opaque boot UI while the real cause lived only in host Docker logs (missing
roomote-workerimage, daemon issues, workerfetch failed). Operators need the actual reason in-product without leaking run auth tokens into the UI or Sentry.Impact
When boot fails, users see actionable failure copy (and optional details) instead of a raw command. Long boots show elapsed time so the UI feels alive. Secrets in
docker -eargs are not stored, displayed, or linked into Sentry via error causes. Cancel-while-provisioning behavior fromdevelopremains intact.Screenshots
Linked work items
Closes #538