Skip to content

Deep dependency health check — deephealthcheck

GET
/health/deep
curl --request GET \
--url https://example.com/api/health/deep \
--cookie sb-access-token=<sb-access-token>

Superadmin only. Runs external probes (Supabase, Mailgun, Stripe, Fly API) and returns per-service latency and status, plus chores[]: the newest run of every /api/cron/* chore. Use for dashboards/monitoring, not Fly LB checks. The HTTP status follows the Supabase probe only; a failing chore does not change it.

All dependencies healthy

Media type application/json

Per-dependency health report (getHealthReport) plus chores[].

object
chores
required
Array<object>

Newest run of one /api/cron/* chore (public.chore_runs, read through chore_runs_latest()).

object
name
required

Chore name, the /api/cron/ route segment

string
last_started_at
required
string format: date-time
last_status
required

A running row with no finished_at past its timeout reads as timeout

string
Allowed values: running succeeded failed timeout
last_message
required

Failure text from the response’s error/errors field, or the thrown message

string | null
consecutive_failures
required

Newest unbroken streak of failed/timeout runs; a run still inside its window is neither

integer
chores_error

Present only when the chore read failed; chores is then empty

string

Not authenticated

Media type application/json
object
error
required

Human-readable error message

string
code

Stable machine-readable error code for client branching

string
fieldErrors

First validation message per field path

object
key
additional properties
string
issues

Structured validation issues (Zod)

Array<object>
object
path
required
string
message
required
string
retryAfter

Seconds until rate limit resets (429 responses)

number
reconnect

True if re-linking GitHub may fix the issue

boolean

Forbidden

Media type application/json
object
error
required

Human-readable error message

string
code

Stable machine-readable error code for client branching

string
fieldErrors

First validation message per field path

object
key
additional properties
string
issues

Structured validation issues (Zod)

Array<object>
object
path
required
string
message
required
string
retryAfter

Seconds until rate limit resets (429 responses)

number

One or more dependencies unhealthy

Media type application/json

Per-dependency health report (getHealthReport) plus chores[].

object
chores
required
Array<object>

Newest run of one /api/cron/* chore (public.chore_runs, read through chore_runs_latest()).

object
name
required

Chore name, the /api/cron/ route segment

string
last_started_at
required
string format: date-time
last_status
required

A running row with no finished_at past its timeout reads as timeout

string
Allowed values: running succeeded failed timeout
last_message
required

Failure text from the response’s error/errors field, or the thrown message

string | null
consecutive_failures
required

Newest unbroken streak of failed/timeout runs; a run still inside its window is neither

integer
chores_error

Present only when the chore read failed; chores is then empty

string