Code Routines: cron fires but cloud containers never execute prompts (silent failure with ended_reason: run_once_fired)

Resolved 💬 3 comments Opened Apr 28, 2026 by Mxntii Closed Apr 28, 2026

Summary

Multiple Claude Code Routines on my account have stopped executing their prompts. Cron triggers fire and the routine state advances (ended_reason: run_once_fired), but the cloud container never reaches prompt execution. This has been silently affecting all my routines for at least 28 days.

The visible "fired" signal led me to spend hours debugging downstream causes (env_id, secrets, MCP attachments) when the actual symptom is upstream at the runtime layer.

Reproducible smoke test

  • Routine ID: trig_01GGa6a6jU7GKcsjkTpWRdXD (name: "Runtime Smoke Test")
  • Fired: 2026-04-28T09:57:07Z (one-shot via run_once_at)
  • Configuration: minimal
  • environment_id: env_01XE23cmQ6V1ioMS2fSUJ7rp (Default per the schedule skill)
  • Single-line Bash prompt that does one curl POST to a webhook I control
  • No MCP attachments
  • No slash command
  • No git operations beyond the standard repo source
  • Expected: the curl reaches my webhook within 1-2 minutes of fire, my server logs show the inbound request, the routine prints the response and exits.
  • Actual: routine state shows ended_reason: run_once_fired at 2026-04-28T09:58:04Z, but my server received zero inbound requests in the 15 minutes after fire. The curl never executed.

Visible Anthropic-side symptom

The run viewer at https://claude.ai/code/routines/<id> for affected runs shows the four init steps stuck with loading spinners indefinitely:

  1. Setting up a cloud container
  2. Clone repository
  3. Run setup script
  4. Start Claude Code

Same behaviour in the desktop Claude Code app and the web viewer.

What has been ruled out

  • Configuration drift in existing routines: a brand-new minimal routine fails the same way.
  • Environment ID: tested both env_014aH42omVrvkZY9wEaG9keq (existing) and env_01XE23cmQ6V1ioMS2fSUJ7rp (Default). Same failure mode.
  • Repo authentication: source repo is publicly cloneable, no auth required.
  • Slash command resolution: smoke test uses no slash command, raw Bash only.
  • MCP attachments: smoke test has none.
  • Embedded secret parsing: only one secret in the test prompt as a plain header value.
  • Quota: routines panel shows 4 of 15 included remote daily runs used, well under cap.

Affected routines beyond the smoke test

  • Morning Ops Check trig_01PpagDwsAX3UstDJYoL6pKb (daily 7:30am AEST cron). No webhook calls or Telegram messages received in the last 7 days at minimum.
  • LinkedIn Scout trig_01642uv5vH8h9tp2RMXG3kx3 (weekdays 1pm AEST cron). Output file last updated on 31 March 2026 (28 days silent).
  • SEO Sentinel trig_016vtkZKEuN6dnjfJxuP9Bun (weekly Mon 7:03am AEST). Cannot confirm recent runs from output artefacts.

Defect candidate

Independently of resolving the runtime failure, the silent failure mode itself is worth a fix:

The ended_reason: run_once_fired flag is set even when the cloud container never reaches prompt execution. This makes the routine appear successful from the user's perspective. A more accurate signal would be:

  • ended_reason: container_init_timeout (or similar) when the container never finishes the init phase
  • A non-empty last_error field surfaced via the API
  • The run viewer changing from "loading" to "failed" after a reasonable timeout (say 5 minutes)

Without these, users have to instrument their downstream effects (webhook calls, file writes, Telegram messages) to detect failure, which adds significant operational overhead.

Environment

  • Account: chris@synergai.com.au
  • Plan: Claude Max
  • Tested via RemoteTrigger API (n8n MCP RemoteTrigger tool) and the desktop Claude Code app
  • macOS desktop client (recent version)
  • Region: Australia (Melbourne, AEST)

Related support thread

Already raised via support@anthropic.com. The Intercom auto-reply (Fin AI Agent) suggested local-config troubleshooting (/doctor, removing ~/.claude.json) which doesn't apply to remote routine runtime issues. Filing here per Anthropic support's recommendation that this needs engineering visibility. Conversation ID for cross-reference: 215474090153858.

Happy to enable any debug flags, share session URLs, or run further test cases.

View original on GitHub ↗

This issue has 3 comments on GitHub. Read the full discussion on GitHub ↗