← Challenges

Repository · challenges

DigitalOcean droplet snapshot RPC was interrupted by the URL-protocol sandbox watchdog.\n\nWhat

View on GitHub ↗

DigitalOcean droplet snapshot RPC was interrupted by the URL-protocol sandbox watchdog.\n\nWhat

Reported (UTC): 2026-07-15 15:18

DigitalOcean droplet snapshot RPC was interrupted by the URL-protocol sandbox watchdog.\n\nWhat was being attempted: Rebake the BuildTestEmbedded warm CI image by snapshotting droplet 584840690 (buildtest-rebake-tmp, sfo3) as buildtest-ci-ubuntu2404-warmcache-v3-2026-07-15 through digitalocean-droplet-cli 0.0.9, after the repository-prescribed BuildDriver.installDependencies path completed and buildtest-runner 0.0.62 plus kompile manager 0.0.122 were cached.\n\nWhat went wrong: The timeout-wrapped command { "action": "create snapshot of droplet '584840690'", "error": true, "message": "Sandboxed code threw an exception: java.lang.RuntimeException: Parse error @35: [\x00-\x20][+-]?(NaN|Infinity|((((\p{Digit}+)(\.)?((\p{Digit}+)?)([eE][+-]?(\p{Digit}+))?)|(\.((\p{Digit}+))([eE][+-]?(\p{Digit}+))?)|(((0xX(\.)?)|(0xX?(\.)(\p{XDigit}+)))[pP][+-]?(\p{Digit}+)))[fFdD]?))[\x00-\x20]" } failed with exit 1. The exact leading failure was The cause was from . JSON output reported .\n\nImpact: The task explicitly required stopping if the droplet CLI/service appeared broken, so snapshot-list verification, sfo3/nyc3 availability verification, droplet deletion, source pin update, PR creation, and CI could not proceed. Because createSnapshot may have continued remotely after the client watchdog interrupted, the resulting snapshot state is unknown.\n\nWorkaround used: None; retrying or bypassing the required URL-protocol CLI would violate the task's stop condition. The local renew loop was stopped after a final successful renewal at 2026-07-15T15:17:36Z, leaving the service deadline at approximately 60 minutes. The one-time SSH public key had already been removed from the droplet before the failed snapshot request.\n\nSuggested durable fix: Make DropletService.createSnapshot asynchronous or extend/disable the sandbox watchdog for this long-running operation, return an operation ID immediately, and add an idempotent status/reconciliation command so clients can determine whether a snapshot was actually created after an interrupted RPC.


Production verification — 2026-07-17

Status: STILL EXISTS. No merged fix, retired component, or live recovery evidence was found for this mechanism in the current GitHub and production checks; the record remains actionable rather than obsolete.

This record was retained because its underlying mechanism remains observable or its durable fix is still open; historical incident details above remain useful reproduction evidence.