Skip to content

Read what happened to a run's code and browser sandboxes

GET
/katara/v1/orgs/{org_id}/environments/{environment_id}/runs/{id}/sandbox-events
curl --request GET \
--url https://api.katara.com/katara/v1/orgs/2489E9AD-2EE2-8E00-8EC9-32D5F69181C0/environments/2489E9AD-2EE2-8E00-8EC9-32D5F69181C0/runs/2489E9AD-2EE2-8E00-8EC9-32D5F69181C0/sandbox-events \
--header 'Authorization: Bearer <token>'

Requires run read access. Events come in the order the executor recorded them, at most 100 a page; pass next_cursor as after to continue. An event names the sandbox, the step and, for a checkpoint, the checkpoint. It never carries a command, output or file, and the journal is kept for thirty days.

org_id
required
string format: uuid
/^[a-f0-9]{8}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{12}$/
Allowed value: 00000000-0000-0000-0000-000000000000
environment_id
required
string format: uuid
/^[a-f0-9]{8}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{12}$/
Allowed value: 00000000-0000-0000-0000-000000000000
id
required
string format: uuid
/^[a-f0-9]{8}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{12}$/
Allowed value: 00000000-0000-0000-0000-000000000000
after
string
/^[1-9][0-9]{0,18}$/
limit
integer
>= 1 <= 100
X-Katara-Account-ID
string format: uuid
/^[a-f0-9]{8}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{12}$/

Optional for reads after sign-in. Use the UUID of the account that loaded the application. A different current cookie account returns account_changed before the handler runs. Session bearer and API key clients do not require this header.

Successful request

Media typeapplication/json

A page of a run’s sandbox journal in recorded order. A cursor appears only on a full page and names its last event.

object
data
required
Array<object>
<= 100 items

One thing that happened to one of the run’s sandboxes. The detail holds codes, counts, durations and flags, never content.

object
id
required
integer
>= 1 <= 9007199254740991
run_id
required
string format: uuid
/^[a-f0-9]{8}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{12}$/
Allowed value: 00000000-0000-0000-0000-000000000000
sandbox_id
required
string format: uuid
/^[a-f0-9]{8}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{12}$/
Allowed value: 00000000-0000-0000-0000-000000000000
kind
required
Allowed values: created resumed worker_assigned execution_started execution_finished checkpoint_created suspended reverted cancelled deleted workload_dead stale_running_detected health_reconciled timeout output_limit process_limit capacity_waited cleanup_failed egress_denied isolation_denied worker_recycled
step
integer
>= 1 <= 10000
checkpoint
string
>= 1 characters <= 120 characters
detail
object
exit_code
integer
>= -2147483648 <= 2147483647
duration_ms
integer
<= 9007199254740991
timed_out
boolean
output_limited
boolean
cancelled
boolean
signal
string
>= 1 characters <= 64 characters
reason
string
>= 1 characters <= 512 characters
waited_ms
integer
<= 9007199254740991
attempt
integer
<= 10000
from
string
>= 1 characters <= 120 characters
backend_state
string
>= 1 characters <= 200 characters
error
string
>= 1 characters <= 64 characters
at
required
string format: date-time
next_cursor
string
/^[1-9][0-9]{0,18}$/
Example
{
"data": [
{
"kind": "created"
}
]
}

Account_changed: reload and review with the signed-in account.

Request error

Media typeapplication/json
object
error
required
object
message
required
string
>= 1 characters <= 500 characters
type
required
string
>= 1 characters <= 100 characters
code
required

Stable; branch on it. Any operation can answer invalid_request, with param naming the refused field when there is one; human_session_required, when an API key, service account or workload calls an operation only a signed-in person may perform; reauthentication_required, when a person’s sign-in is too old for the operation; permission_denied; route_not_found and method_not_allowed, when no operation matches the path or method; and feature_unavailable, when the operation’s service is not enabled on this deployment.

string
>= 1 characters <= 100 characters
param
required

The request field a refusal is about, such as the agent_id or run_id query parameter; null when the refusal is not about one field.

string | null
request_id
required
string
>= 1 characters <= 100 characters
upstream_status
required
integer | null
action
Allowed values: sign_in reauthenticate request_access review fund retry reconcile refresh support
operation_id
string format: uuid
/^[a-f0-9]{8}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{12}$/
Allowed value: 00000000-0000-0000-0000-000000000000
snapshot_ref
string format: uuid
/^[a-f0-9]{8}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{12}$/
Allowed value: 00000000-0000-0000-0000-000000000000
Example
{
"error": {
"action": "sign_in"
}
}