Repository navigation
fix(cloud): a chat whose machine E2B can't start says so and keeps retrying - #181
Merged
Merged
Conversation
Thread transfer impact✅ Thread transfer remains within every enforced ceiling.
Baseline: Scenario and decoded snapshot size10 historical turns, 5 command tools per turn, 878.9 KiB retained MCP result per historical turn, and a 1.05 MiB retained result in the measured turn.
Updated in place by a trusted workflow. PR artifacts are strictly validated and never executed. |
…trying When E2B could not place a paused sandbox (504 placement timeout, 503 no capacity, other 5xx), the host refused the resume as `unknown`, then ran the upgrade that recovers a stuck guest, which the host reports as "updating". Clients showed "waking" or "updating" for as long as E2B stayed down. The refusal now carries `cause: "provider-unavailable"`, which skips the pointless upgrade. The host remembers when each machine's provider last failed and its presence answer carries `providerUnavailableAt`, so every client and the host's own wake-ahead share it. Web and mobile banners, rows and the floating status say "E2B couldn't start this chat's cloud machine yet", that the problem is on their side, and when it last tried. Both fields are optional and decode leniently, so older clients and hosts are unaffected. The host's and the client's retry backoff are unchanged. Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
…ies it The host reported when a machine's provider last failed until another resume answered, so a settled or archived chat the user had opened and left kept an amber "Retrying" label and 15-second polling with nothing retrying. Presence now reports the failure only while a wake is in flight or wake-ahead would retry the box, and for no longer than the longest backoff. A timeout no longer claims the problem is on E2B's side. The refusal and the presence answer carry `provider-unavailable` (E2B answered with a 5xx) or `provider-unreachable` (it did not answer in time), and the client says "Couldn't reach E2B yet" for the second. Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
…peScript can load The memory fixture and typecheck rejected the constructor parameter property. Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
andrewcai8
force-pushed
the
fix/wake-failure-shown
branch
from
October 6, 2026 17:37
735b966 to
0b67461
Compare
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
On 2026-10-06 E2B could not resume one chat's paused sandbox (504 "Failed to place sandbox: placement timed out") for over an hour; the chat showed "updating" the whole time. The placement failure came back as a plain
unknownrefusal, the host then tried an upgrade to recover the box (reported as updating), and the client showed that machine state over the refusal.cause: "provider-unavailable", and the host skips the upgrade attempt for them. Presence answers carryproviderUnavailableAt, cleared on the next other answer. Both fields are optional and lenient.unavailablestatus: "E2B couldn't start this chat's cloud machine yet. The problem is on their side. Retrying on its own, last tried at …" on web (banner, sidebar pill) and mobile (notice, status, row), and re-poll every 15 s while it lasts.Not classified by E2B's
error_code: e2b@2.49.0 drops it fromSandboxError, so status is the signal. Namespace capacity errors aren't classified yet. Tests: a real 504 throughmanager.resumeyields the provider-unavailable refusal; 502 too; the upgrade is skipped; presence reports and clears the timestamp; client status, banner copy and polling.🤖 Generated with Claude Code