Needs attention

Sites

Media hub (Vercel)

OK

HTTP 307 in 1175 ms

24 h 100.0% · 7 d 100.0% · in this state since monitoring began · 1175 ms

Media hub cron endpoint (Vercel to Turso)

OK

HTTP 200: {"ran":"2026-09-14T22:48:36.261Z","step":"ping"}

24 h 100.0% · 7 d 100.0% · in this state since monitoring began · 9285 ms

Opportunity API (/api/mobile/v1/feed)

OK

auth wall answering (HTTP 401) in 193 ms

24 h 100.0% · 7 d 100.0% · in this state since monitoring began · 193 ms

Media Intel team page (Cloudflare)

OK

up; page says "Updated 15 Sep 2026" (-11 min ago)

24 h 50.0% · 7 d 50.0% · in this state since 15 Sept, 08:16 · 132 ms

Team page functions (D1 notes and submissions)

OK

HTTP 400 {"error":"opp required"}

24 h 100.0% · 7 d 100.0% · in this state since monitoring began · 20 ms

Client portal (onboarding.launchlink.co)

OK

HTTP 200 in 1321 ms

24 h 100.0% · 7 d 100.0% · in this state since monitoring began · 1321 ms

Team dash (Cloudflare)

OK

HTTP 200 in 102 ms

24 h 100.0% · 7 d 100.0% · in this state since monitoring began · 102 ms

Live processes on the Mac

WhatsApp bridge

OK

up; last message 23 min ago

24 h 100.0% · 7 d 100.0% · in this state since monitoring began

Daily brief action server (:3001)

OK

answering (HTTP 404)

24 h 100.0% · 7 d 100.0% · in this state since monitoring began

Team dash refresh daemon

OK

last tick 0 min ago

24 h 100.0% · 7 d 100.0% · in this state since monitoring began

Scheduled jobs

Gmail media intel (06:30 daily)

OK

last intel file 13 min ago

24 h 66.7% · 7 d 66.7% · in this state since 15 Sept, 08:06

Savings, events, trends + team page deploy (06:45 daily)

OK

last stores file 38 min ago

24 h 66.7% · 7 d 66.7% · in this state since 15 Sept, 08:06

Media hub daily refresh + team digest email (07:15 daily)

OK

last run 1.6 h ago; digest sent

24 h 100.0% · 7 d 100.0% · in this state since monitoring began

Opportunity poll (every 15 min)

OK

last poll 10 min ago; email: 63 seen, 0 new, 63 updated, 0 already known, 0 dupes, 0 expired | sourcebottle: 353 seen, 0 new, 296 updated, 57 already known, 0 dupes,

24 h 100.0% · 7 d 100.0% · in this state since monitoring began

Verification sweep (daily)

Check

last pass 15 h ago; [2026-09-14 09:00] pass 1/1 unreadable response / [2026-09-14 09:00] adjudicate settled 0 · disagreed 0 · for a person 3

24 h 100.0% · 7 d 100.0% · in this state since monitoring began

How to fix

'unreadable response' = the cron verify step timed out or returned non-JSON (often OpenRouter out of credit, or a 300 s Vercel window overrun). Check the credits card below first.

Felicia's daily brief (6x/day)

Check

brief last written 16 h ago; last exit 1; log: There's an issue with the selected model (fable[1m]). It may not exist or you may not have access to it. Run --model to pick a different model.

24 h 100.0% · 7 d 100.0% · in this state since monitoring began

How to fix

refresh.sh needs --permission-mode acceptEdits and current MCP tool names; a stale file with no error usually means the final Write was denied.

Team dash morning brief (6x/day)

Check

last log write 1.8 h ago; launchd exits [1,6,6,6,6,0]; log: There's an issue with the selected model (fable[1m]). It may not exist or you may not have access to it. Run --model to pick a different model.

24 h 100.0% · 7 d 100.0% · in this state since monitoring began

How to fix

team-dash/scripts/morning-brief.sh, two headless claude calls, now pinned to --model opus.

Headless claude (what every extractor job runs on)

OK

claude -p answered

24 h 100.0% · 7 d 100.0% · in this state since monitoring began

launchd registrations

OK

9 jobs loaded

24 h 83.3% · 7 d 83.3% · in this state since 15 Sept, 08:05

Production data (Turso)

Turso production database

OK

reachable in 2489 ms; 12,148 journalists; 2521 staged changes awaiting review

24 h 100.0% · 7 d 100.0% · in this state since monitoring began · 2489 ms

Article ingest (Vercel cron, nightly)

Check

last feed run 4.7 h ago; 60/69 feeds healthy; failing: AdNews, Banking Day, Business News Australia, HR Leader, Information Age, InnovationAus, InvestorDaily, The New Daily, ZDNet

24 h 100.0% · 7 d 100.0% · in this state since monitoring began

How to fix

Feeds returning 403/404 have moved or now block bots. Fix the URL in the sources table (scripts/discover-feeds.ts) or disable the source.

Mailbox scans (Vercel cron, nightly)

Check

6 inboxes, last scan 4.2 h ago; needs attention: annmargaret@launchlink.co (needs_reauth)

24 h 100.0% · 7 d 100.0% · in this state since monitoring began

How to fix

needs_reauth = Google refresh token expired (invalid_grant). That person signs in to the hub and reconnects their inbox under Settings.

Opportunity engine (callouts arriving)

OK

newest callout 1.5 h ago; 94 in last 24 h; email:haro 1.5 h ago, email:qwoted 33.7 days ago, sourcebottle 15 h ago

24 h 100.0% · 7 d 100.0% · in this state since monitoring began

Pressto webhook deliveries (hub to api.yaarn.ai)

Down

last 24 h: 0 delivered, 474 failed of 474; last response: 400 {"error":"No events to ingest"}

24 h 16.7% · 7 d 16.7% · in this state since 15 Sept, 08:05

How to fix

Pressto's receiver answers 400 'No events to ingest' to the documented {id,event,at,data} body and to an {events:[...]} wrapper, signature valid. That is a contract mismatch on the Pressto side (Joe): the receiver needs to accept the shape in media-hub/docs/PRESSTO-WEBHOOKS.md, or say what it wants.

Credits, keys and sessions

OpenRouter credit (web lookups, verification, chat)

Check

US$18.69 left; burning about US$4.22/day (about 4 days)

24 h 100.0% · 7 d 100.0% · in this state since monitoring began

How to fix

Top up at openrouter.ai/settings/credits. At zero, every web feature returns empty with no error (402 swallowed), verification stalls and the sweep logs 'unreadable response'.

Substack session (On Background, Get Featured)

OK

newest post pulled 12 h ago

24 h 100.0% · 7 d 100.0% · in this state since monitoring began

Resend (digest + portal email)

OK

key present in media-hub/.env.local (delivery proven by the digest job above)

24 h 100.0% · 7 d 100.0% · in this state since monitoring began

Incidents (last 25)

ComponentStartedEndedWhat was seen
Pressto webhook deliveries (hub to api.yaarn.ai)15 Sept, 08:06openlast 24 h: 0 delivered, 402 failed of 402; last response: 400 {"error":"No events to ingest"}
launchd registrations15 Sept, 08:0515 Sept, 08:06not loaded: co.launchlink.media-status
Savings, events, trends + team page deploy (06:45 daily)15 Sept, 08:0515 Sept, 08:16last stores file 4.1 days ago; last exit 1; log: There's an issue with the selected model (fable[1m]). It may not exist or you may not have
Gmail media intel (06:30 daily)15 Sept, 08:0515 Sept, 08:16last intel file 3.7 days ago; last exit 1; log: There's an issue with the selected model (fable[1m]). It may not exist or you may not have a
Media Intel team page (Cloudflare)15 Sept, 08:0515 Sept, 08:27up; page says "Updated 11 Sep 2026" (4.0 days ago)