Needs attention

Sites

Media hub on Vercel (cron endpoint to Turso)

OK

HTTP 200: {"ran":"2026-11-13T03:04:43.041Z","step":"ping"}

24 h 97.8% · 7 d 98.0% · in this state since 13 Nov, 11:27 · 882 ms

Media Intel team page (Cloudflare)

OK

up; page says "Updated 13 Nov 2026" (-295 min ago)

24 h 97.8% · 7 d 98.0% · in this state since 13 Nov, 11:27 · 476 ms

Team page functions (D1 notes and submissions)

OK

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

24 h 100.0% · 7 d 98.5% · in this state since 12 Nov, 08:23 · 126 ms

Client portal (onboarding.launchlink.co)

OK

HTTP 200 in 434 ms

24 h 100.0% · 7 d 98.0% · in this state since 12 Nov, 09:39 · 434 ms

Cycle engine (Railway)

Down

up; 0 articles, 0 live cycles, 80/90 feeds healthy, llm api (gemini-flash-latest); disk 82% used (db 344 MB, 79 MB free)

24 h 0.0% · 7 d 0.0% · in this state since monitoring began · 309 ms

How to fix

cd ~/Developer/cycle-engine && railway status. 'Application not found' = no active deployment. If railway up says 'Your trial has expired', pick a plan at railway.com (Hobby is enough) and redeploy: railway up --service cycle-engine --detach. A full volume kills SQLite; the Janitor agent now prunes at boot and every 6 h, and a 'disk_warning' in the agent feed means grow the volume in the Railway dashboard.

Team dash (Cloudflare)

OK

HTTP 200 in 250 ms

24 h 100.0% · 7 d 98.5% · in this state since 12 Nov, 08:23 · 250 ms

Live processes on the Mac

WhatsApp bridge

OK

up; last message 1 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 13 Nov, 11:27

Team dash refresh daemon

OK

last tick 0 min ago

24 h 100.0% · 7 d 99.5% · in this state since 12 Nov, 03:03

Scheduled jobs

Opportunity poll actually running (any clock)

OK

last poll finished 1 min ago

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

Gmail media intel (06:30 daily)

OK

last intel file 12 h ago

24 h 100.0% · 7 d 100.0% · in this state since 9 Nov, 20:17

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

OK

last stores file 12 h ago

24 h 100.0% · 7 d 100.0% · in this state since 10 Nov, 12:44

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

OK

last run 12 h ago; digest sent

24 h 100.0% · 7 d 100.0% · in this state since 11 Nov, 20:58

Opportunity poll (every 15 min)

Check

last poll 5 min ago; email: 120 seen, 0 new, 74 updated, 39 already known, 0 dupes, 17 expi; error: email:haro/1a1ccb4feaefabbe#19: fetch failed

24 h 100.0% · 7 d 98.5% · in this state since 13 Nov, 13:31

How to fix

scripts/poll-cron.sh writes to production Turso and is now the BACKUP poller; the hourly GitHub Actions job below is the primary. Zero yield on SourceBottle for a whole day usually means their page changed, not that there were no callouts.

GitHub Actions opportunity poll (backup clock)

OK

last run 3.0 h ago, success

24 h 100.0% · 7 d 100.0% · in this state since 13 Nov, 11:27

GitHub Actions watchdog (backup, fires every few hours)

OK

last run 3 min ago, success

24 h 100.0% · 7 d 100.0% · in this state since 13 Nov, 11:27

Verification sweep (daily)

Check

last pass 11 h ago; [2026-11-12 08:20] pass 1/1 unreadable response / [2026-11-12 08:20] 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 1.2 h ago

24 h 100.0% · 7 d 100.0% · in this state since 13 Nov, 11:27

Team dash morning brief (6x/day)

OK

last log write 1.1 h ago; launchd exits [0,0,0,0,1,0]

24 h 100.0% · 7 d 100.0% · in this state since 13 Nov, 11:27

Headless claude (what every extractor job runs on)

OK

claude -p answered

24 h 97.8% · 7 d 96.1% · in this state since 13 Nov, 11:27

launchd registrations

OK

9 jobs loaded

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

Production data (Turso)

Turso production database

OK

reachable in 1023 ms; 3522 staged changes awaiting review

24 h 97.8% · 7 d 97.6% · in this state since 13 Nov, 11:27 · 1023 ms

Article ingest (Vercel cron, nightly)

Check

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

24 h 100.0% · 7 d 100.0% · in this state since 28 Oct, 06:08

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

7 inboxes, last scan -32 min ago

24 h 100.0% · 7 d 100.0% · in this state since 28 Oct, 06:08

Opportunity engine (callouts arriving)

OK

newest callout 3 min ago; 84 in last 24 h; email:haro 4.5 h ago, sourcebottle 3 min ago

24 h 100.0% · 7 d 100.0% · in this state since 9 Nov, 08:51

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

OK

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

24 h 100.0% · 7 d 100.0% · in this state since 7 Nov, 09:40

Credits, keys and sessions

OpenRouter credit (web lookups, verification, chat)

OK

US$31.34 left; burning about US$2.07/day (about 15 days)

24 h 97.8% · 7 d 62.4% · in this state since 13 Nov, 11:27

Substack session (On Background, Get Featured)

OK

newest post pulled 3.6 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
OpenRouter credit (web lookups, verification, chat)13 Nov, 11:2713 Nov, 13:01fetch failed
Turso production database13 Nov, 11:2713 Nov, 13:01fetch failed
Headless claude (what every extractor job runs on)13 Nov, 11:2713 Nov, 13:01no answer: exit 143
Media Intel team page (Cloudflare)13 Nov, 11:2713 Nov, 13:01fetch failed
Media hub on Vercel (cron endpoint to Turso)13 Nov, 11:2713 Nov, 13:01fetch failed
Client portal (onboarding.launchlink.co)12 Nov, 09:3912 Nov, 10:11fetch failed
Turso production database12 Nov, 08:2312 Nov, 09:09fetch failed
Team dash (Cloudflare)12 Nov, 08:2312 Nov, 09:09fetch failed
Client portal (onboarding.launchlink.co)12 Nov, 08:2312 Nov, 09:09fetch failed
Team page functions (D1 notes and submissions)12 Nov, 08:2312 Nov, 09:09fetch failed
Media Intel team page (Cloudflare)12 Nov, 08:2312 Nov, 09:09fetch failed
Media hub on Vercel (cron endpoint to Turso)12 Nov, 08:2312 Nov, 09:09fetch failed
Headless claude (what every extractor job runs on)12 Nov, 04:4112 Nov, 08:23no answer: You've hit your session limit · resets 12:50pm (America/Los_Angeles)
Opportunity poll (every 15 min)12 Nov, 03:0312 Nov, 04:10last poll 2.9 h ago
Headless claude (what every extractor job runs on)11 Nov, 02:1911 Nov, 07:13no answer: You've hit your session limit · resets 9:10am (America/Los_Angeles)
OpenRouter credit (web lookups, verification, chat)10 Nov, 08:0212 Nov, 09:09US$8.08 left; burning about US$2.32/day (about 3 days)
OpenRouter credit (web lookups, verification, chat)10 Nov, 05:5710 Nov, 06:52fetch failed
Turso production database10 Nov, 05:5710 Nov, 06:52fetch failed
Team dash (Cloudflare)10 Nov, 05:5710 Nov, 06:52fetch failed
Client portal (onboarding.launchlink.co)10 Nov, 05:5710 Nov, 06:52fetch failed
Team page functions (D1 notes and submissions)10 Nov, 05:5710 Nov, 06:52fetch failed
Media Intel team page (Cloudflare)10 Nov, 05:5710 Nov, 06:52fetch failed
Media hub on Vercel (cron endpoint to Turso)10 Nov, 05:5710 Nov, 06:52This operation was aborted
OpenRouter credit (web lookups, verification, chat)9 Nov, 08:189 Nov, 08:51fetch failed
Turso production database9 Nov, 08:189 Nov, 08:51fetch failed

Automatic restarts (last 15)

ComponentWhenAction
Opportunity poll (every 15 min)13 Nov, 11:35co.launchlink.opportunities
Daily brief action server (:3001)13 Nov, 11:35co.launchlink.action-server
Opportunity poll (every 15 min)12 Nov, 03:20co.launchlink.opportunities
Team dash refresh daemon12 Nov, 03:20com.launchlink.refresh-daemon
Savings, events, trends + team page deploy (06:45 daily)10 Nov, 12:45co.launchlink.intel-stores
Verification sweep (daily)10 Nov, 08:03co.launchlink.media-sweep
Team dash refresh daemon9 Nov, 04:07com.launchlink.refresh-daemon
Opportunity poll (every 15 min)8 Nov, 11:52co.launchlink.opportunities
Felicia's daily brief (6x/day)7 Nov, 01:57co.launchlink.personal-brief
Team dash morning brief (6x/day)6 Nov, 22:24co.launchlink.briefing.0900
Verification sweep (daily)6 Nov, 19:21co.launchlink.media-sweep
Opportunity poll (every 15 min)6 Nov, 19:21co.launchlink.opportunities
Opportunity poll (every 15 min)6 Nov, 10:55co.launchlink.opportunities
Team dash morning brief (6x/day)6 Nov, 01:31co.launchlink.briefing.0900
Felicia's daily brief (6x/day)6 Nov, 01:31co.launchlink.personal-brief