Ten Fallback Runs and Zero Broker Reads on 2026-11-09
On 2026-11-09, Claude ran ten times and failed ten times because cron jobs lack OAuth. Here is how unattended agents fail silently.
Open full-size image (opens in new tab)
On 2026-11-09, my fallback agent ran ten times and failed on every attempt. Markets opened, so the position manager ran throughout the session. Codex executed eleven successful checks. Claude handled the fallback lane and hit ten identical BROKER_STATE_UNAVAILABLE blocks. The scheduler launched each run without a terminal window. Steps three through six stalled because the trading tool required interactive authorization. A broken fallback leaves your system exposed while generating empty logs.
Why did the Claude trading fallback fail ten times?
The Claude fallback failed because scheduled background runs lack interactive browser access for OAuth. The runner started on schedule, but steps three through six lacked tool access. The agent logged ten clean receipts while Codex handled all market execution alone.
The position manager depended on the robinhood-trading MCP server. That server requires browser authorization once an access token expires. Codex held an active session and completed eleven broker reads. Claude lacked a stored token and had an empty terminal. Each scheduled run launched, encountered missing tools, wrote a receipt file, and exited clean with status code 0.
A green exit code only reports process termination. Unattended cron jobs often return status 0 after writing an error receipt. You should verify what an agent actually produced to confirm real work happened. Ten runs produced ten text receipts on disk. Each receipt recorded an authentication block instead of reading a market position.
What happens when an automated stop renews as a day order?
An automated stop order set as a day order expires at the closing bell. On 2026-11-09, my trade review renewed an ERIC stop order at 9.66 for regular hours only. That order expired at 4:00 PM, leaving the shares exposed overnight.
On 2026-11-08, I recorded a note to convert the ERIC stop to good-til-cancelled. The agent overlooked that instruction on 2026-11-09. It placed order 6af2397b as a good-for-day stop_market order for 3 shares at 9.66. The local test suite passed 23 out of 23 tests and 36 assertions. Claim verification marked the pull request GREEN at commit 9732c601ec.
The code satisfied its explicit unit checks. The assertions verified schema formatting and broker arguments. They ignored overnight market protection. You should give an agent a file, not a memory to preserve execution flags across sessions. When trade rules live in scratch notes, automated runs revert to default values.
How can you detect silent failures across scheduled agents?
You detect silent failures by tracking file changes outside internal logs and auditing tool availability. On 2026-11-09, most completed background tasks created files inside the git vault alone. Process logs can easily disguise stalled external work.
Here is the operational breakdown for the two trading lanes on 2026-11-09:
| Metric | Codex Lane | Claude Fallback Lane |
|---|---|---|
| Scheduled runs | 11 | 10 |
| Completed broker reads | 11 | 0 |
| MCP tool state | Connected | Blocked on OAuth step 3 |
| Error code output | 0 | 10 BROKER_STATE_UNAVAILABLE |
| Files modified outside vault | 0 | 0 |
Other background routines showed similar patterns on 2026-11-09. Doctor ran RED: 81 expected, 13 fired, 54 paused, and 1 missing. The spend guard remained set to fail_open_no_data, disabling the kill switch. SecurityAnalyst reported RED with 5 P0, 29 P1, and 41 P2 items, while opening 0 tickets. Both autotrader private keys remained inside git history on day twenty-one. A vault sweep routine wrote 21 fail rows on one bad pathspec, expanding the pending backlog from 13,245 to 13,562 files.
I rely on BMD, see what your agents actually did to compare runtime traces against reported completions. My asset ledger recorded 8 assets in seven days against 731 reports across fourteen days. The fallback lane mirrors that ratio: ten runs, ten honest receipts, zero broker reads. On 2026-11-08, the instruments misread what they counted. On 2026-11-09, the receipt became the only output.
Production work continued elsewhere. One public post went live at bmdpat.com/blog/llm-gpu-costs-unexpectedly-high-how-to-diagnose-the-bill-2026 with SHA-256 b51679caa89b9479. Loops logged 221 human sessions, 1 CTA click, and 0 installs.
What should you do with this?
- Audit every scheduled agent configuration to verify that tools rely on service tokens rather than interactive browser prompts.
- Check duration parameters on automated order placements to ensure trade stops stay active after market close.
- Add an automated assertion that marks any job failed if it writes internal status receipts while skipping external actions.
Accompanying prompt
What the prompt does: Audits background agent configurations to identify interactive authentication requirements that cause silent failures during scheduled runs.
Copy/paste this prompt:
Copy-ready prompt
Paste the exact block into your coding agent.
No article chrome, no footnotes, no formatting drift.
This prompt and every other one we publish live in the free prompt library.
Copy the block above.
Weekly measured local runs: https://bmdpat.com/5090-reports
Get the Local AI Field Kit
Four copy-ready tools now, then one evidence-backed Local AI Lab Note on Friday when there is something worth sharing.
Try the free agent run check firstGet the requested artifact now, then at most one evidence-backed Local AI Lab Note on Friday when there is something worth sharing. One-click unsubscribe. No sponsored placements. Privacy.
Written by
Patrick Hughes
I build BMD and publish measured AI runs, failure reports, and reusable checks. Nashville, Tennessee.
More writing
- 5 min
LLM GPU Costs Unexpectedly High: How to Diagnose the Bill
When LLM GPU costs are unexpectedly high, idle replica minutes, cold starts, and separate disk fees inflate invoices. Here is how to audit your runtime spend.
- 5 min
Three carried backlog items moved on 2026-11-06
On 2026-11-06, three carried items merged in thirty minutes. Red checks stayed open across doctor jobs, agent scans, and two stale autotrader keys.
- 5 min
The e2e run passed on 2026-11-07 after eleven red nights
On 2026-11-07, an eleven-night test streak cleared, nine lines unblocked the newsletter, and an agent cloned its own body under a new title.
- 5 min
A stop order closed REAL for 21.56% on 2026-11-05
A stop order closed REAL for 21.56% while my trade agent stalled on 2026-11-05. Overnight, 69 test cases stayed skipped and five alerts piled up.
- 5 min
I Replaced Five Scheduled Tasks with Codex Cron
On 2026-10-17, I killed five Windows scheduled tasks and moved nightly queues to seven Codex cron jobs. The security audit stayed red across five repos.