FruxonDocs
AgentsExecution Records

Reverts every sandbox this execution mutated back to its pre-run state.

Restores every snapshot in the run group that was taken before this execution started, then deletes those snapshots (a one-shot revert, not a save point). No-op when the execution has no snapshot group (run touched no simulator-routed configs, or revert already ran). Best-effort across configs — a per-snapshot failure is logged but does not block the rest.

POST
/v1/tenants/{tenant}/agents/{agent}/executionRecords/{executionRecord}:revertSandbox
AuthorizationBearer <token>

JWT Authorization header using the Bearer scheme. Enter 'Bearer' [space] and then your token.

In: header

Path Parameters

agent*string

The agent identifier.

executionRecord*string

The execution identifier.

tenant*string

The tenant identifier

Response Body

curl -X POST "https://api.fruxon.com/v1/tenants/string/agents/string/executionRecords/string:revertSandbox"
Empty
Empty
Empty
{
  "type": "string",
  "title": "string",
  "status": 0,
  "detail": "string",
  "instance": "string",
  "property1": null,
  "property2": null
}

Resumes a failed run, continuing the turn it died in.

A run that fails mid-turn keeps everything it had done: the suspend memo holds the tool calls it made up to its last suspension, and the per-call checkpoints hold everything it ran after that. This puts the run back on the queue so the worker replays those results — without re-invoking the tools — and carries on from the point that failed. It is the <b>same</b> execution record throughout, not a copy: the run is continuing, so its trace, cost and lineage stay whole. Refuses runs that parked before tool-result checkpointing existed. Their memo describes the turn as of the last suspension only, so anything they ran after it is invisible and would be re-invoked — twice-sent messages, twice-filed documents. Pass `force=true` only after checking the trace shows no tool calls after the last suspension. Also refuses a run whose schedule has fired again since it failed. The scheduler holds off while a run is alive, but a failed run frees its binding, so the next fire is correct and has already covered this ground — reviving the old run would put two runs of one schedule over the same work.

Lists evaluation samples derived from this execution — one per dataset the execution is tagged into.

Returns the cross-reference rows created by `POST .../executionRecords/{executionRecord}:addToDatasets`, each pointing at the dataset it was added to along with its tags. Useful for showing "this run is in N datasets" affordances in the trace UI and for callers building dataset-curation tooling. Returns an empty list (not 404) if the execution exists but has never been added to a dataset.