Media hub (Vercel)
OKHTTP 307 in 1470 ms
HTTP 307 in 1470 ms
HTTP 200: {"ran":"2026-09-18T05:21:18.685Z","step":"ping"}
auth wall answering (HTTP 401) in 179 ms
up; page says "Updated 18 Sep 2026" (1.4 h ago)
HTTP 400 {"error":"opp required"}
HTTP 200 in 812 ms
up; 12,958 articles, 280 live cycles, 79/90 feeds healthy, llm api (gemini-flash-latest); disk 52% used (db 214 MB, 209 MB free)
HTTP 200 in 277 ms
up; last message 9 min ago
answering (HTTP 404)
last tick 2 min ago
last poll finished 10 min ago
last intel file 8.0 h ago
last stores file 8.3 h ago
last run 8.1 h ago; digest sent
last poll 15 min ago; email: 122 seen, 0 new, 73 updated, 49 already known, 0 dupes, 43 expi | sourcebottle: 228 seen, 0 new, 216 updated, 12 already known, 0 dupes,
last run 51 min ago, success
last run 3.1 h ago, success
last pass 11 h ago; [2026-09-17 14:02] pass 1/1 unreadable response / [2026-09-17 14:02] adjudicate adjudication unreadable
'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.
brief last written 7 min ago
last log write 10 min ago; launchd exits [1,1,0,0,0,0]
claude -p answered
9 jobs loaded
reachable in 3372 ms; 12,148 journalists; 2543 staged changes awaiting review
last feed run 6.2 h ago; 61/69 feeds healthy; failing: AdNews, Banking Day, Business News Australia, HR Leader, Information Age, InnovationAus, InvestorDaily, The New Daily
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.
6 inboxes, last scan 5.7 h ago
newest callout 46 min ago; 68 in last 24 h; email:haro 8.0 h ago, email:qwoted 36.9 days ago, sourcebottle 46 min ago
last 24 h: 229 delivered, 0 failed of 229; last response: 200 {"received":true}
US$12.55 left; burning about US$2.91/day (about 4 days)
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'.
newest post pulled 3.8 days ago
key present in media-hub/.env.local (delivery proven by the digest job above)
| Component | Started | Ended | What was seen |
|---|---|---|---|
| OpenRouter credit (web lookups, verification, chat) | 18 Sept, 13:00 | 18 Sept, 13:12 | fetch failed |
| Turso production database | 18 Sept, 13:00 | 18 Sept, 13:12 | fetch failed |
| Media Intel team page (Cloudflare) | 18 Sept, 13:00 | 18 Sept, 13:12 | fetch failed |
| Opportunity API (/api/mobile/v1/feed) | 18 Sept, 13:00 | 18 Sept, 13:12 | fetch failed |
| Media hub cron endpoint (Vercel to Turso) | 18 Sept, 13:00 | 18 Sept, 13:12 | fetch failed |
| Media hub (Vercel) | 18 Sept, 13:00 | 18 Sept, 13:12 | fetch failed |
| Headless claude (what every extractor job runs on) | 18 Sept, 09:08 | 18 Sept, 09:29 | no answer: You've hit your session limit · resets 7:20pm (America/New_York) |
| Turso production database | 18 Sept, 03:57 | 18 Sept, 04:18 | fetch failed |
| Cycle engine (Railway) | 18 Sept, 03:57 | 18 Sept, 04:18 | fetch failed; volume 46% full |
| Client portal (onboarding.launchlink.co) | 18 Sept, 03:57 | 18 Sept, 04:18 | fetch failed |
| Opportunity API (/api/mobile/v1/feed) | 18 Sept, 03:57 | 18 Sept, 04:18 | fetch failed |
| Media hub cron endpoint (Vercel to Turso) | 18 Sept, 03:57 | 18 Sept, 04:18 | fetch failed |
| Media hub (Vercel) | 18 Sept, 03:57 | 18 Sept, 04:18 | fetch failed |
| Savings, events, trends + team page deploy (06:45 daily) | 17 Sept, 14:19 | 18 Sept, 07:11 | last stores file 2.3 days ago |
| Headless claude (what every extractor job runs on) | 17 Sept, 13:05 | 17 Sept, 13:26 | no answer: You've hit your session limit · resets 11:20pm (America/New_York) |
| Headless claude (what every extractor job runs on) | 17 Sept, 07:59 | 17 Sept, 08:20 | no answer: You've hit your session limit · resets 6:20pm (America/New_York) |
| OpenRouter credit (web lookups, verification, chat) | 17 Sept, 00:32 | 17 Sept, 00:45 | fetch failed |
| Turso production database | 17 Sept, 00:32 | 17 Sept, 00:45 | fetch failed |
| Headless claude (what every extractor job runs on) | 17 Sept, 00:32 | 17 Sept, 06:45 | no answer: You've hit your session limit · resets 5:10pm (Europe/Lisbon) |
| Client portal (onboarding.launchlink.co) | 17 Sept, 00:32 | 17 Sept, 00:45 | fetch failed |
| Team page functions (D1 notes and submissions) | 17 Sept, 00:32 | 17 Sept, 00:45 | fetch failed |
| Media Intel team page (Cloudflare) | 17 Sept, 00:32 | 17 Sept, 00:45 | fetch failed |
| Opportunity API (/api/mobile/v1/feed) | 17 Sept, 00:32 | 17 Sept, 00:45 | fetch failed |
| Media hub cron endpoint (Vercel to Turso) | 17 Sept, 00:32 | 17 Sept, 00:45 | fetch failed |
| Media hub (Vercel) | 17 Sept, 00:32 | 17 Sept, 00:45 | fetch failed |
| Component | When | Action |
|---|---|---|
| Team dash refresh daemon | 18 Sept, 06:50 | com.launchlink.refresh-daemon |
| Opportunity poll (every 15 min) | 18 Sept, 02:27 | co.launchlink.opportunities |
| Savings, events, trends + team page deploy (06:45 daily) | 17 Sept, 13:06 | co.launchlink.intel-stores |
| Daily brief action server (:3001) | 17 Sept, 00:34 | co.launchlink.action-server |
| Team dash morning brief (6x/day) | 17 Sept, 00:18 | co.launchlink.briefing.0900 |
| Gmail media intel (06:30 daily) | 16 Sept, 22:27 | co.launchlink.media-intel |
| Verification sweep (daily) | 16 Sept, 20:34 | co.launchlink.media-sweep |
| Felicia's daily brief (6x/day) | 16 Sept, 16:14 | co.launchlink.personal-brief |
| Opportunity poll (every 15 min) | 16 Sept, 16:14 | co.launchlink.opportunities |
| Team dash refresh daemon | 16 Sept, 16:14 | com.launchlink.refresh-daemon |
| WhatsApp bridge | 16 Sept, 16:14 | com.launchlink.whatsapp-bridge |
| Savings, events, trends + team page deploy (06:45 daily) | 16 Sept, 14:22 | co.launchlink.intel-stores |
| Felicia's daily brief (6x/day) | 16 Sept, 09:11 | co.launchlink.personal-brief |
| Opportunity poll (every 15 min) | 16 Sept, 04:15 | co.launchlink.opportunities |
| Team dash refresh daemon | 16 Sept, 04:15 | com.launchlink.refresh-daemon |