RemoteTrigger tool: `action: run` rejects `trigger_id` with HTTP 400 'Extra inputs are not permitted'

Resolved 💬 2 comments Opened May 1, 2026 by christopherhead60-ops Closed May 2, 2026

Summary

When invoking the RemoteTrigger tool (used by the /schedule skill) with action: "run" and a valid trigger_id, the API returns HTTP 400 with trigger_id: Extra inputs are not permitted. The same trigger_id works correctly with action: "get". The tool appears to serialize trigger_id into the request body instead of using it only for the URL path (POST /v1/code/triggers/{trigger_id}/run).

Reproduce

I created a routine successfully:

{"action": "create", "body": {"name": "...", "cron_expression": "0 8 1 */2 *", ...}}

Response: HTTP 200 — routine trig_01SvQMS5Vbx2FWCS7HFJVDvY created.

Then get works:

{"action": "get", "trigger_id": "trig_01SvQMS5Vbx2FWCS7HFJVDvY"}

Response: HTTP 200 with full routine config.

But run fails:

{"action": "run", "trigger_id": "trig_01SvQMS5Vbx2FWCS7HFJVDvY"}

Response:

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

Same error with body: {} added. Request IDs: req_011CabLR17UhMFwS6jbAij1P, req_011CabLRKABfRJQff184hKPv.

Expected

run should trigger an immediate execution of the routine and return success, as documented:

POST /v1/code/triggers/{trigger_id}/run (optional body)

Hypothesis

The tool's run action likely places trigger_id into the JSON request body (as it does for create), but the API endpoint validates the body against a schema that doesn't include trigger_id (since it's already in the URL path). Either:

  • The tool should strip trigger_id from the body before POSTing for run, or
  • The API should ignore extra trigger_id fields in the body for path-bound endpoints.

Workaround

Trigger manual runs via the web UI (https://claude.ai/code/routines/{trigger_id}) — confirmed working there.

Environment

  • Claude Code CLI, Opus 4.7 (1M context)
  • macOS Darwin 25.4.0
  • Skill: schedule (built-in)

View original on GitHub ↗

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