Problem
DELETE /api/spawned/:name successfully stopped and removed local workers, but the request then waited on cloud fleet/identity cleanup. Under a saturated Relaycast workspace it timed out or returned HTTP 500:
owned identity cleanup unconfirmed ... retry retained:
fleet deregistration connection closed before acknowledgement
The worker was already absent from GET /api/spawned, so the response makes a successful local release look like a total failure. Some requests hung beyond 30 seconds.
Expected
Local process release and remote identity cleanup should have explicit, independently observable outcomes. Once the worker is stopped, the API should return bounded structured success such as:
{"released":true,"identityCleanup":"pending"}
Remote cleanup can remain journaled and retryable without blocking or converting the local release into an ambiguous 500.
Add regression coverage for a disconnected or saturated control plane and idempotent retries.
Impact
During a workspace-backlog incident, operators cannot reliably drain the workers generating pressure because release itself waits on the impaired cloud path.
Problem
DELETE /api/spawned/:namesuccessfully stopped and removed local workers, but the request then waited on cloud fleet/identity cleanup. Under a saturated Relaycast workspace it timed out or returned HTTP 500:The worker was already absent from
GET /api/spawned, so the response makes a successful local release look like a total failure. Some requests hung beyond 30 seconds.Expected
Local process release and remote identity cleanup should have explicit, independently observable outcomes. Once the worker is stopped, the API should return bounded structured success such as:
{"released":true,"identityCleanup":"pending"}Remote cleanup can remain journaled and retryable without blocking or converting the local release into an ambiguous 500.
Add regression coverage for a disconnected or saturated control plane and idempotent retries.
Impact
During a workspace-backlog incident, operators cannot reliably drain the workers generating pressure because release itself waits on the impaired cloud path.