Skip to content

get_diagnostics

GET
/v1/reports/admin/diagnostics
curl --request GET \
--url https://app.everruns.com/api/v1/reports/admin/diagnostics

Return diagnostics for the reporting subsystem (operator view).

Reporting diagnostics

Media type application/json

Point-in-time health snapshot of the reporting layer — projector freshness plus outbox processing health. Returned from GET /v1/reports/admin/diagnostics.

object
generated_at
required

Server-side wall-clock timestamp when this snapshot was assembled (RFC 3339). Use as the “as-of” for any displayed lag metrics.

string format: date-time
outbox
required

Reporting outbox health — counts of pending/processing/failed/ completed rows plus a sample of the most recent failures.

object
completed
required

Outbox rows that have completed processing successfully.

integer format: int64
failed
required

Outbox rows that have failed (exceeded retry limit).

integer format: int64
failed_rows
required

Sample of the most recent failed rows for operator inspection.

Array<object>

One failed reporting-outbox row, surfaced in ReportingOutboxDiagnostics.failed_rows so operators can triage projector failures without dropping to SQL.

object
attempts
required

Number of processing attempts made before this row was marked failed.

integer format: int32
id
required

Outbox row UUID.

string format: uuid
last_error

Most recent error message from a processing attempt.

string | null
org_id
required

Owning organization’s internal numeric id.

integer format: int64
source_id
required

Source-specific row identifier (event id, session id, etc.).

string
source_type
required

Discriminator for the outbox source (event, session, llm_generation, usage_ledger).

string
updated_at
required

Timestamp when this row was last updated (RFC 3339).

string format: date-time
oldest_pending_at

Timestamp of the oldest pending row (RFC 3339). None if no rows are pending.

string | null format: date-time
pending
required

Outbox rows waiting to be claimed by a projector.

integer format: int64
processing
required

Outbox rows currently being processed.

integer format: int64
projector_lag
required

Per-dataset projector freshness. One entry per active reporting dataset; missing datasets mean the projector hasn’t produced any rows yet.

Array<object>

Per-dataset projector freshness telemetry. One entry per active dataset the reporting projector is materializing.

object
dataset
required

Dataset name (matches ReportQuery.dataset).

string
freshness_lag_ms

Gap between latest_projected_at and the diagnostic’s generated_at, in milliseconds. None when freshness can’t be determined.

integer | null format: int64
latest_projected_at

Wall-clock timestamp of the newest fact the projector has materialized for this dataset (RFC 3339). None if the projector hasn’t produced any rows yet.

string | null format: date-time
Example generated
{
"generated_at": "2026-04-15T12:00:00Z",
"outbox": {
"completed": 1,
"failed": 1,
"failed_rows": [
{
"attempts": 1,
"id": "2489E9AD-2EE2-8E00-8EC9-32D5F69181C0",
"last_error": "example",
"org_id": 1,
"source_id": "example",
"source_type": "example",
"updated_at": "2026-04-15T12:00:00Z"
}
],
"oldest_pending_at": "2026-04-15T12:00:00Z",
"pending": 1,
"processing": 1
},
"projector_lag": [
{
"dataset": "example",
"freshness_lag_ms": 1,
"latest_projected_at": "2026-04-15T12:00:00Z"
}
]
}

Forbidden

Media type application/json

Standard error response.

Wire shape is RFC 9457 Problem Details: every error response includes title and status, and may include detail, code, allowed_actions, retry_after_seconds, instance, and type. The content type is rewritten to application/problem+json by [problem_json_content_type].

object
allowed_actions

Recovery actions the caller can take next.

Array<object>

Agent-actionable link describing a follow-up the caller can take. Used in two contexts:

  • Error recoveryErrorResponse.allowed_actions carries rels like retry, retry-later, unarchive, get-existing so the agent knows the right next call after a 4xx/429.
  • Entity hypermediaWithUrls<T>.allowed_actions carries state-aware rels like cancel, events, self, update on the entity itself so the agent can follow links instead of reconstructing routes from prose.

The shape is intentionally identical across both contexts; the closed rel vocabulary documented in specs/api-conventions.md distinguishes them.

object
hint

Short, agent-readable hint (e.g. “Shorten ‘name’ to <= 200 chars.”, “Cancel the active turn for this session.”).

string | null
href

Absolute (preferred) or relative URL the caller may invoke directly. Always present on entity hypermedia actions (WithUrls<T>.allowed_actions); optional on error-recovery actions (ErrorResponse.allowed_actions) where the matching operation_id is enough and the URI is implicit from the failed call.

string | null
method

HTTP method to use against href. Required for entity hypermedia actions; usually omitted on error-recovery actions where the same operation is retried with its original method.

string | null
operation_id

OpenAPI operationId the caller should invoke. Lets an MCP client resolve the call without parsing href.

string | null
rel
required

Link relation describing the action. Closed vocabulary documented in specs/api-conventions.md — examples: self, cancel, pause, resume, events, retry, retry-later, unarchive, get-existing, delete, update.

string
schema_ref

OpenAPI $ref to the request-body schema, when the action takes one (e.g. #/components/schemas/UpdateSessionRequest). Lets a tool-calling agent fetch the input shape without scanning the whole spec.

string | null
code

Stable, machine-readable error code (snake_case).

string | null
detail

Human-readable explanation specific to this occurrence.

string | null
instance

Request URI for this occurrence.

string | null
retry_after_seconds

Seconds the caller should wait before retrying (429 / transient 503).

integer | null format: int32
status
required

HTTP status code; mirrors the response status line.

integer format: int32
title
required

Short, human-readable summary of the problem (e.g. “Not Found”).

string
type

RFC 9457 problem type URI. Optional; identifies the problem class.

string | null
Example
{
"allowed_actions": [
{
"method": "POST"
}
],
"code": "session_not_found",
"detail": "Session session_01933b5a000070008000000000000001 not found in org org_01933b5a000070008000000000000001.",
"instance": "/v1/sessions/session_01933b5a000070008000000000000001",
"retry_after_seconds": 30,
"status": 404,
"title": "Session not found",
"type": "https://docs.everruns.com/errors/session_not_found"
}