Health & OpsUptime
42 days

Uptime & Health

Liveness of the non-production stack — the environments the build team owns end to end. Each tile maps to a logical probe that /api/health aggregates per environment; uptime is a rolling 30 days window and latency is the health-check p50. PROD is tracked separately and is out of scope here.

8

Probes tracked

99.1%

DEV uptime (30 days)

98.3%

Staging uptime (30 days)

1

Open incidents

Health endpoints

The raw payloads these tiles are derived from. Open one to see the live, un-summarized health response for that environment.

DEV

http://localhost:3000/api/health

Open /api/health

Staging

https://staging.uploz.io/api/health

Open /api/health

Probe board

One row per probe target across DEV and staging. Each cell shows current state, rolling uptime, and health-check p50. Grouped by tier.

Application
ProbeDEVStaging

apps/web

Next.js server renders and the App Router responds within budget.

health.app.web

Up

99.9% · 42ms

Up

99.7% · 88ms

apps/dev-admin

This cockpit boots and its read-only data layer resolves.

health.app.devAdmin

Up

99.8% · 36ms

Degraded

98.1% · 140ms

IP-allowlisted; cold starts after idle inflate p50.

Data
ProbeDEVStaging

Supabase Postgres

A SELECT 1 against the source-of-truth database succeeds.

health.data.postgres

Up

100.0% · 3ms

Local Supabase stack.

Up

99.9% · 11ms

Supabase Storage

A signed-URL HEAD against the attachments bucket returns 200.

health.data.storage

Up

99.9% · 18ms

Up

99.8% · 53ms

Async / workers
ProbeDEVStaging

apps/worker

The escalation loop heartbeats and fn_due_escalations last ran on time.

health.async.worker

Up

99.1% · n/a

Single in-process loop.

Down

94.0% · n/a

Leader-election rollout in progress; loop paused to avoid double-fire.

Web Push (VAPID)

The dispatch path is reachable and VAPID keys are loadable.

health.async.webpush

Degraded

95.0% · n/a

Delivery logged but not dispatched in DEV.

Unknown

— · n/a

Not yet stood up in staging.

Edge
ProbeDEVStaging

Supabase API / Auth

PostgREST + GoTrue answer a probe request behind RLS.

health.edge.supabaseApi

Up

99.9% · 9ms

Up

99.6% · 47ms

Realtime / WS

A presence channel opens and a postgres-changes subscription ACKs.

health.edge.realtime

Up

99.5% · 14ms

Degraded

97.2% · 210ms

Broadcast throttling still being tuned; occasional reconnect storms.

Recent incidents

Disruptions in the non-prod environments. Open items still need attention; resolved items are kept for trend context.

DateEnvProbeSummaryDurationState
2026-05-18Stagingapps/workerEscalation loop paused during leader-election rollout; due escalations queued.~6h (ongoing rollout)Open
2026-05-12StagingRealtime / WSReconnect storm after a deploy spiked presence-channel latency.38mResolved
2026-05-06DEVSupabase PostgresLocal Supabase stack OOM-restarted during a large migration replay.11mResolved
2026-04-29Stagingapps/dev-adminCold-start p50 breached budget after an idle weekend; warmed via a keep-alive probe.22mResolved

Probe history and the incident log are illustrative project-tracking state authored in src/data/uptime.ts (permitted per R1), not a feed from a live monitor.