Docs

Errors

The errors a sandbox call answers with, what each means, and what to do next.

For your agent

agental.io/docs/errors.md
AnswerMeaningWhat to do
401 unauthorizedAPI key missing or wrong.Ask for a working API key.
401 key_expiredThe key's last day has passed.Ask for a new key.
403 key_address_forbiddenThe key may not be used from the address the request came from. message names it.Do not retry. Tell the person the address.
403 key_action_forbiddenThe key was not made with the action this call takes. message names it.Do not retry. Ask for a key that may, or do without.
403 key_exceeds_callerA key was asked to make a key stronger than itself.Ask for less: fewer actions, sandboxes, days or addresses.
400 template_requiredA key limited to several templates made a sandbox without naming one.Send templateId, one of the key's.
400 invalid_requestA field is missing or malformed.Read message, fix, resend.
400 idempotency_key_requiredA create came without its key.Add Idempotency-Key.
400 ttl_too_longTime limit above the ceiling.Ask for less.
400 confirm_delete_requiredDelete without its confirm header.Add it only if you mean it.
400 invalid_pathA file path that is absolute or leaves the work folder.Send a relative path.
400 invalid_hostA host for a kept-out variable that cannot be one, or none, or more than 10.Read message, fix it, resend.
400 invalid_network_policyAn outbound rule or an address that cannot be one.Read message, fix it, resend.
400 rule_on_templateoutbound sent to a sandbox.Set the rule on its template: PUT /v1/templates/{id}/network.
402 billing_required out_of_creditThe account's plan or balance does not allow it.Tell the person. message says what would change it.
402 size_not_on_planThe plan does not make sandboxes of that size.Pick a size the plan makes, or tell the person: message names the plan that does.
403 recipient_not_allowedA message for an address other than the account's own, or one never proved to be its owner's.Leave to out. Do not try another address.
403 mail_suspendedMail was switched off for the account by whoever runs the service.Do not retry. Tell the person.
404 not_foundNo sandbox of yours has that id.List your sandboxes.
404 file_not_foundThe file does not exist.Check the path.
409 sandbox_not_runningThe sandbox is stopped.Start it, then repeat.
409 sandbox_archivedStopped, disk in storage.Start, poll until running, repeat.
409 sandbox_migratingMoving to another server.Poll every 10 seconds, then repeat.
409 invalid_stateNot possible from its current status.GET it, wait for running or stopped.
409 account_limit_reachedAccount holds its maximum.Reuse one. Delete only if agreed.
409 capacity_exceededNo room right now in the region.Another region from error.regionsWithRoom, with a new key, or wait a minute.
409 name_takenA sandbox has that name.It may be yours: list and reuse.
409 idempotency_conflictKey used with a different body.New sandbox, new key.
409 snapshot_limit_reachedAccount keeps its maximum of snapshots.Delete one you no longer need.
409 template_in_useSandboxes are on that template.Put them on another template first.
409 default_templatedefault is not deleted or renamed.Leave it.
409 not_on_templateapply named a sandbox not on that template.Name only sandboxes on it.
409 not_hiddenNew hosts for a plain variable.Set it with its value and hosts.
409 hosts_widenedA host a kept-out variable is not sent to now, without its value.Set it again with its value and hosts.
409 too_many_addressesA template's addresses and a sandbox's own over 100.Take some off, or use a range.
409 restore_blockedA sandbox made from this one after the snapshot still exists.Delete that one, or leave this as it is.
409 route_limit_reachedAlready 5 ports registered.Reuse a port.
409 ssh_unavailableSSH could not be set up in the machine, or no port could be opened.Read message. Do not retry at once.
409 desktop_unavailableThe machine has no desktop, or it did not start.Read message. A new sandbox has one.
409 desktop_not_runningThe desktop is off, or not up yet.Turn it on, then repeat.
409 browser_unavailableThe machine cannot run its browser to be driven from outside, or Chrome did not start.Read message. A new sandbox can.
409 mail_offMail is off for the sandbox, so it can send none.Turn it on, then repeat.
409 recipient_refuses_mailThe address refused a message for good.Nothing is sent to it for a day. Do not retry.
413 message_too_largeA message over 10 MB as it is transmitted.Send less, or leave an attachment out.
422 create_failedCreate failed for good.New key, try once more.
429 running_limit_reachedThe account runs as many sandboxes as its plan allows.Stop or delete one you no longer need, or tell the person.
429 burst_fee_too_highThe start would cost more in burst fees than Agental-Max-Burst-Fee allows.Wait retryAfterSeconds, or allow the fee in feeMicros.
429 burst_budget_reachedThis month's burst fees would pass the account's budget.Wait retryAfterSeconds, or tell the person.
429 mail_limit_reachedThe account has sent what it may in an hour or a day, or its stored mail is full.Read message. Wait, or delete mail.
500 host_error internal_errorThe machine, its host or agental failed.Retry once after 10 seconds, then report.
501 driver_operation_unavailableThis deployment cannot do that.Do not retry.
501 hidden_variables_unavailableA variable cannot be kept out of the sandbox here. GET /v1/policy says so as hiddenVariables.Do not retry. Tell the person.
503 sandbox_movedMoved to another server mid-request.Send the request again.
503 metrics_unreadableNot one server answered for its readings.Ask again in a minute.
503 to a WebSocketA WebSocket to a public address opened as agental restarted. Nothing reached the sandbox.Open it again after a second.
503 uncertain_operationOutcome not known yet.Wait 10 seconds, GET, go by status.
502 504 52xA proxy answered.Wait 10 seconds. Retry a create with the same key.

The full machine-readable reference is OpenAPI 3.1. Every page as Markdown, for an agent: llms.txt. Questions: [email protected]