Troubleshooting
A project shows “unknown” instead of up/down
unknown means the check itself couldn’t run (not that the target
responded badly). Check that the health-check URL is reachable from the
public internet — http://localhost targets only work while developing
locally, never in production.
I’m not getting notified about an incident
Walk through, in order:
- Is a notification channel actually attached to that project? Channels exist independently of projects until attached via a rule.
- Is the rule muted, or set to digest only? A digest-only rule deliberately doesn’t send per-incident alerts.
- Has the escalation threshold been reached? A single failed check doesn’t open an incident by itself if the threshold is higher than 1.
- For email/webhook channels, check the channel’s saved config value is still correct — it’s masked after saving and can only be replaced, not inspected.
Bulk import rows are failing
Each row is validated with the same rules as the single “Add project” form.
The most common causes are a non-https:// health check URL, or a
health_url that duplicates an existing project’s — duplicates are still
imported, just flagged with a warning rather than blocked.
The app runs but I can’t sign in
If NEXT_PUBLIC_SUPABASE_URL / NEXT_PUBLIC_SUPABASE_PUBLISHABLE_KEY aren’t
set, auth is silently disabled rather than erroring — see
Configuration.
No project is ever checked, even though everything looks configured
The dashboard and database can be fully set up while the actual checking
still does nothing, if the pg_cron jobs are missing their auth secrets.
Confirm both vault secrets exist (project_url and prober_secret_key,
see Getting Started) and that all five Edge
Functions (prober, notifier, digest, rollup, prune) are actually
deployed. Cron jobs fail silently without these — check
select * from cron.job_run_details order by start_time desc limit 5;
against your Supabase project for the real error.
A TCP/DNS/SSL check always shows “unknown” or “down”
Confirm the target’s format matches its check type — tcp/ssl expect
host:port (no scheme), dns expects a bare hostname (no scheme or port).
A DNS check only resolves A (IPv4) records, so an AAAA-only hostname
will always misreport as unresolvable. See
Check types for the full table.
My project’s status page is 404ing
The public status page toggle is per-project and off by default — confirm it’s enabled in that project’s settings (see Public Status Pages). Disabling it makes the page 404 immediately, even if you have the link bookmarked.