---
title: Health checklist
description: A cross-cutting starting point when something is broken and you're not sure where to look.
---

## Symptom

Something in Retidal is broken and you're not sure where to start looking — a request fails, a console page looks wrong, or a feature stopped behaving as documented, but you can't yet tell which subsystem is at fault.

## Likely causes

1. **Authentication is the first thing to rule out on any surface** — confirm which credential the request used and what it returned.

   ```bash
   curl -s -o /dev/null -w "%{http_code}\n" -X POST https://api.retidal.com/api/v1/t \
     -H "X-API-Key: $RETIDAL_API_KEY" -H "Content-Type: application/json" \
     -d '{"eventName": "health_check", "visitorId": "vid_healthcheck"}'
   # 202 (or 200 with ?sync=1) = the key is valid; 401 = missing or invalid key.
   # Do not probe with an empty body: `{}` is valid JSON, so it is accepted (202) and
   # only marked invalid downstream — POST /api/v1/t returns 400 solely for malformed
   # JSON or a batch over 100 events, never as a "key is fine" signal.
   # This route has no scope gate and never returns a scope error; a scoped route
   # (decide, profile, coupons) returns a scope error for a valid key missing the
   # required scope.
   ```

2. **Your project role or key scopes don't match the operation you're calling.**

   Console → Projects → Settings → API Keys — check the key's scope list; Console → Projects → Members — check your session's project role.

3. **The issue is isolated to one surface** (ingestion vs. Management API vs. console UI) rather than a system-wide outage.

   Console → Projects → Debug — recent ingestion activity for this project, independent of the console UI.

## Still stuck

If authentication, scopes, and surface isolation all check out: [Events not arriving](/docs/troubleshooting/events-not-arriving) for ingestion-shaped symptoms, [Decisioning not firing](/docs/troubleshooting/decisioning-not-firing) for decision or reward symptoms, or [Email not delivered](/docs/troubleshooting/email-not-delivered) for delivery symptoms.
