Why is my Meetings page empty?
Run down this list in order. Most cases boil down to (a) no source configured, (b) sync didn't run, (c) sync ran but nothing returned, (d) Project filter is hiding the rows.
No Granola source is configured
Go to /dashboard/integrations/meet. If you don't see Granola listed, click + Connect Granola and follow the setup. Until then, no Granola data flows.
Sync runs but reports 0 new, 0 duplicate
Most likely: your Granola account has no recent notes, OR the API key in mnueron isn't the one tied to the right Granola workspace. Re-paste the key from Granola → Settings → API → API keys. Then click Sync now again and watch the dev terminal for [granola.sync] info page 1 returned N notes.
Sync returns 401 / Unauthorized
The API key is wrong, revoked, or has trailing whitespace. Re-copy it carefully. The bearer header sent by mnueron is exactly Authorization: Bearer <your_key>.
Meetings exist in the DB but the page is empty
Check the Project filter chips at the top. If "Unfiled" is selected and all your meetings auto-assigned to a project, they won't show. Click "All" or pick the right project.
Meetings show in /dashboard/meetings but not under any project
They're Unfiled. Auto-assignment requires at least one project to exist before the classifier runs. Create one at /dashboard/projects, then move existing meetings via the Move-to dropdown.
Historical bug: bytea auth_payload (migration 053)
Before migration 053, meeting_sources.auth_payload was declared as bytea while the code treated it as JSON. That meant the Granola API key read as undefined and every sync 401'd silently. Migration 053 converts the column to jsonb losslessly. If you set up Granola before 053 and Sync still reports zero, re-paste the API key once to trigger a fresh write through the new path.
I'm running locally and connections are timing out
The Supabase Transaction pooler (port 6543) is not meant for long-running clients like Next.js dev. Switch your LOCAL .env from :6543/postgres to :5432/postgres (Session pooler) and restart npm run dev. Production stays on 6543.