Needs attention

Sites

Media hub (Vercel)

OK

HTTP 307 in 1322 ms

24 h 87.0% · 7 d 86.5% · in this state since 18 Sept, 04:08 · 1322 ms

Media hub cron endpoint (Vercel to Turso)

OK

HTTP 200: {"ran":"2026-09-17T23:50:19.204Z","step":"ping"}

24 h 87.0% · 7 d 86.5% · in this state since 18 Sept, 04:08 · 259 ms

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

OK

auth wall answering (HTTP 401) in 90 ms

24 h 87.6% · 7 d 86.9% · in this state since 18 Sept, 04:08 · 90 ms

Media Intel team page (Cloudflare)

OK

up; page says "Updated 18 Sep 2026" (-250 min ago)

24 h 88.1% · 7 d 86.1% · in this state since 17 Sept, 06:45 · 357 ms

Team page functions (D1 notes and submissions)

OK

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

24 h 89.8% · 7 d 88.5% · in this state since 17 Sept, 00:32 · 43 ms

Client portal (onboarding.launchlink.co)

OK

HTTP 200 in 318 ms

24 h 88.1% · 7 d 87.3% · in this state since 18 Sept, 04:08 · 318 ms

Cycle engine (Railway)

OK

up; 12,122 articles, 390 live cycles, 80/90 feeds healthy, llm api (gemini-flash-latest); disk 48% used (db 198 MB, 225 MB free)

24 h 88.5% · 7 d 88.5% · in this state since 18 Sept, 04:08 · 230 ms

Team dash (Cloudflare)

OK

HTTP 200 in 211 ms

24 h 89.3% · 7 d 88.1% · in this state since 17 Sept, 00:15 · 211 ms

Live processes on the Mac

WhatsApp bridge

OK

up; last message 6 min ago

24 h 90.4% · 7 d 91.7% · in this state since 16 Sept, 20:30

Daily brief action server (:3001)

OK

answering (HTTP 404)

24 h 100.0% · 7 d 100.0% · in this state since 17 Sept, 00:32

Team dash refresh daemon

OK

last tick 1 min ago

24 h 100.0% · 7 d 99.6% · in this state since 18 Sept, 06:50

Scheduled jobs

Opportunity poll actually running (any clock)

OK

last poll finished 4 min ago

24 h 100.0% · 7 d 100.0% · in this state since 18 Sept, 02:26

Gmail media intel (06:30 daily)

OK

last intel file 2.5 h ago

24 h 100.0% · 7 d 99.2% · in this state since 16 Sept, 22:38

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

OK

last stores file 2.8 h ago

24 h 59.3% · 7 d 70.6% · in this state since 18 Sept, 06:50

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

OK

last run 2.6 h ago; digest sent

24 h 100.0% · 7 d 100.0% · in this state since 17 Sept, 01:54

Opportunity poll (every 15 min)

OK

last poll 10 min ago; email: 122 seen, 0 new, 73 updated, 49 already known, 0 dupes, 26 expi | sourcebottle: 378 seen, 0 new, 325 updated, 53 already known, 0 dupes,

24 h 100.0% · 7 d 99.2% · in this state since 18 Sept, 07:11

GitHub Actions opportunity poll (backup clock)

OK

last run 21 min ago, success

24 h 96.6% · 7 d 97.0% · in this state since 18 Sept, 04:08

GitHub Actions watchdog (backup, fires every few hours)

OK

last run 3 min ago, success

24 h 96.6% · 7 d 96.1% · in this state since 18 Sept, 04:08

Verification sweep (daily)

Check

last pass 5.8 h ago; [2026-09-17 14:02] pass 1/1 unreadable response / [2026-09-17 14:02] adjudicate adjudication unreadable

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)

OK

brief last written 2.6 h ago; last exit 1

24 h 89.3% · 7 d 92.5% · in this state since 17 Sept, 07:06

Team dash morning brief (6x/day)

Check

last log write 50 min ago; launchd exits [1,1,0,1,0,0]; log: API Error: Overloaded

24 h 95.5% · 7 d 96.8% · in this state since 18 Sept, 06:50

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 81.4% · 7 d 82.5% · in this state since 18 Sept, 09:19

launchd registrations

OK

9 jobs loaded

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

Production data (Turso)

Turso production database

OK

reachable in 2133 ms; 12,148 journalists; 2543 staged changes awaiting review

24 h 85.3% · 7 d 85.3% · in this state since 18 Sept, 04:08 · 2133 ms

Article ingest (Vercel cron, nightly)

Check

last feed run 42 min ago; 61/69 feeds healthy; failing: AdNews, Banking Day, Business News Australia, HR Leader, Information Age, InnovationAus, InvestorDaily, The New Daily

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)

OK

6 inboxes, last scan 13 min ago

24 h 100.0% · 7 d 100.0% · in this state since 17 Sept, 01:54

Opportunity engine (callouts arriving)

OK

newest callout 2.5 h ago; 136 in last 24 h; email:haro 2.5 h ago, email:qwoted 36.7 days ago, sourcebottle 19 h ago

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

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

OK

last 24 h: 232 delivered, 0 failed of 232; last response: 200 {"received":true}

24 h 100.0% · 7 d 70.7% · in this state since 15 Sept, 18:15

Credits, keys and sessions

OpenRouter credit (web lookups, verification, chat)

Check

US$12.55 left; burning about US$3.08/day (about 4 days)

24 h 87.6% · 7 d 86.9% · in this state since 17 Sept, 00:32

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 3.5 days 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
Headless claude (what every extractor job runs on)18 Sept, 09:0818 Sept, 09:29no answer: You've hit your session limit · resets 7:20pm (America/New_York)
Turso production database18 Sept, 03:5718 Sept, 04:18fetch failed
Cycle engine (Railway)18 Sept, 03:5718 Sept, 04:18fetch failed; volume 46% full
Client portal (onboarding.launchlink.co)18 Sept, 03:5718 Sept, 04:18fetch failed
Opportunity API (/api/mobile/v1/feed)18 Sept, 03:5718 Sept, 04:18fetch failed
Media hub cron endpoint (Vercel to Turso)18 Sept, 03:5718 Sept, 04:18fetch failed
Media hub (Vercel)18 Sept, 03:5718 Sept, 04:18fetch failed
Savings, events, trends + team page deploy (06:45 daily)17 Sept, 14:1918 Sept, 07:11last stores file 2.3 days ago
Headless claude (what every extractor job runs on)17 Sept, 13:0517 Sept, 13:26no answer: You've hit your session limit · resets 11:20pm (America/New_York)
Headless claude (what every extractor job runs on)17 Sept, 07:5917 Sept, 08:20no answer: You've hit your session limit · resets 6:20pm (America/New_York)
OpenRouter credit (web lookups, verification, chat)17 Sept, 00:3217 Sept, 00:45fetch failed
Turso production database17 Sept, 00:3217 Sept, 00:45fetch failed
Headless claude (what every extractor job runs on)17 Sept, 00:3217 Sept, 06:45no answer: You've hit your session limit · resets 5:10pm (Europe/Lisbon)
Client portal (onboarding.launchlink.co)17 Sept, 00:3217 Sept, 00:45fetch failed
Team page functions (D1 notes and submissions)17 Sept, 00:3217 Sept, 00:45fetch failed
Media Intel team page (Cloudflare)17 Sept, 00:3217 Sept, 00:45fetch failed
Opportunity API (/api/mobile/v1/feed)17 Sept, 00:3217 Sept, 00:45fetch failed
Media hub cron endpoint (Vercel to Turso)17 Sept, 00:3217 Sept, 00:45fetch failed
Media hub (Vercel)17 Sept, 00:3217 Sept, 00:45fetch failed
Team dash (Cloudflare)17 Sept, 00:1517 Sept, 00:32fetch failed
Cycle engine (Railway)17 Sept, 00:1517 Sept, 00:45fetch failed
Turso production database16 Sept, 23:5516 Sept, 23:58fetch failed
GitHub Actions watchdog (backup, fires every few hours)16 Sept, 23:5016 Sept, 23:55last run 3.6 h ago, success
OpenRouter credit (web lookups, verification, chat)16 Sept, 23:4316 Sept, 23:50fetch failed
Media hub cron endpoint (Vercel to Turso)16 Sept, 23:4316 Sept, 23:50This operation was aborted

Automatic restarts (last 15)

ComponentWhenAction
Team dash refresh daemon18 Sept, 06:50com.launchlink.refresh-daemon
Opportunity poll (every 15 min)18 Sept, 02:27co.launchlink.opportunities
Savings, events, trends + team page deploy (06:45 daily)17 Sept, 13:06co.launchlink.intel-stores
Daily brief action server (:3001)17 Sept, 00:34co.launchlink.action-server
Team dash morning brief (6x/day)17 Sept, 00:18co.launchlink.briefing.0900
Gmail media intel (06:30 daily)16 Sept, 22:27co.launchlink.media-intel
Verification sweep (daily)16 Sept, 20:34co.launchlink.media-sweep
Felicia's daily brief (6x/day)16 Sept, 16:14co.launchlink.personal-brief
Opportunity poll (every 15 min)16 Sept, 16:14co.launchlink.opportunities
Team dash refresh daemon16 Sept, 16:14com.launchlink.refresh-daemon
WhatsApp bridge16 Sept, 16:14com.launchlink.whatsapp-bridge
Savings, events, trends + team page deploy (06:45 daily)16 Sept, 14:22co.launchlink.intel-stores
Felicia's daily brief (6x/day)16 Sept, 09:11co.launchlink.personal-brief
Opportunity poll (every 15 min)16 Sept, 04:15co.launchlink.opportunities
Team dash refresh daemon16 Sept, 04:15com.launchlink.refresh-daemon