[BUG] Routines /run endpoint returns HTTP 400 "trigger_id: Extra inputs are not permitted" — both web UI and RemoteTrigger tool affected

Resolved 💬 8 comments Opened Apr 26, 2026 by PettHa Closed Jun 1, 2026

Preflight Checklist

  • [x] I have searched existing issues and this hasn't been reported yet
  • [x] This is a single bug report (please file separate reports for different bugs)
  • [x] I am using the latest version of Claude Code

What's Wrong?

The "Run now" button on a routine page (claude.ai/code/routines/<trigger_id>) consistently fails with the toast "Failed to start run. You can try again." regardless of which model, repository, or prompt is configured.

Inspecting the network call shows the server returns HTTP 400 with:

{"type":"error","error":{"type":"invalid_request_error","message":"trigger_id: Extra inputs are not permitted"}}

The exact same error surfaces when triggering the run via the RemoteTrigger tool inside Claude Code (action: "run"). Both clients seem to include trigger_id in the request body in addition to the URL path, and the server's body validator rejects it as an extra field.

Net effect: it is impossible to manually trigger ANY routine. Scheduled cron-driven runs may still work via a different code path, but cannot be confirmed without waiting for one to fire.

What Should Happen?

Clicking "Run now" should start a fresh remote agent session and return a 200 with a session/run id, identical to the behavior the docs describe at https://code.claude.com/docs/en/web-scheduled-tasks.

Error Messages/Logs

HTTP 400
request_id: req_011CaSh7izYufENBzzFf5YKi

{"type":"error","error":{"type":"invalid_request_error","message":"trigger_id: Extra inputs are not permitted"},"request_id":"req_011CaSh7izYufENBzzFf5YKi"}

Browser console stack (web UI):
mutationFn @ https://assets-proxy.anthropic.com/claude-ai/v2/assets/v1/index-wRctMB7g.js:3
fn @ https://assets-proxy.anthropic.com/claude-ai/v2/assets/v1/vendor-BNxKmwN0.js:20
start @ https://assets-proxy.anthropic.com/claude-ai/v2/assets/v1/vendor-BNxKmwN0.js:20
execute @ https://assets-proxy.anthropic.com/claude-ai/v2/assets/v1/vendor-BNxKmwN0.js:20
mutate @ https://assets-proxy.anthropic.com/claude-ai/v2/assets/v1/vendor-BNxKmwN0.js:20

Steps to Reproduce

  1. Create a routine via /schedule (or via the web UI). Any valid cron_expression and job_config works — the create call returns 200 and the routine shows up in the UI.
  2. Open the routine: https://claude.ai/code/routines/<trigger_id>
  3. Click "Run now".
  4. Observe the toast: "Failed to start run. You can try again."
  5. Open DevTools → Network → click the failing POST to /v1/code/triggers/<trigger_id>/run.
  6. The response body contains:

{"type":"error","error":{"type":"invalid_request_error","message":"trigger_id: Extra inputs are not permitted"}}

  1. Repeat in Claude Code with the RemoteTrigger tool (action: "run", trigger_id: "<id>") — same 400 response.

Claude Model

Sonnet (default)

Is this a regression?

I don't know

Last Working Version

_No response_

Claude Code Version

2.1.119 (VS Code extension on Windows 11 — anthropic.claude-code-2.1.119-win32-x64)

Platform

Anthropic API

Operating System

Windows

Terminal/Shell

VS Code integrated terminal

Additional Information

Same error surfaces from two independent clients (browser web UI at claude.ai/code/routines AND the RemoteTrigger tool inside Claude Code). Both transports send trigger_id in the request body in addition to the URL path. Strong indicator the regression is server-side (POST /v1/code/triggers/{trigger_id}/run body validator was tightened to reject extra fields, but no client was updated to stop sending trigger_id in the body).

Related (different but adjacent regressions in the same routines API surface):

Severity: High. Run-now is the recommended way to validate a routine before letting cron fire it — currently impossible. Cron may still work; cannot be confirmed without waiting.

Workaround: none.

View original on GitHub ↗

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