[BUG] RemoteTrigger create/update returns HTTP 400 with circular error: "event_type is required" / "unknown field event_type"
Preflight Checklist
- [x] I have searched existing issues and this hasn't been reported yet
- [x] This is a single bug report
- [x] I am using the latest version of Claude Code
What's Wrong?
RemoteTrigger with action: "create" and action: "update" both fail with HTTP 400. The error is circular: omitting event_type from events[0] produces "event_type is required", but including it produces "unknown field \"event_type\"". There is no valid payload that satisfies both sides of the validator. Both create and update have been non-functional since at least 2026-05-21.
What Should Happen?
RemoteTrigger with action: "create" should create a new scheduled routine and action: "update" should update an existing one. Both were documented as supported when the tool was added in v2.1.128.
Error Messages/Logs
# Without event_type:
HTTP 400: "translate job_config v1→v2: events[0]: event_type is required"
# With event_type: "user_message":
HTTP 400: "translate job_config v1→v2: job_config is not a valid CreateSessionRequest: proto: unknown field \"event_type\""
# With flat prompt field:
HTTP 400: "translate job_config v1→v2: job_config is not a valid CreateSessionRequest: proto: unknown field \"prompt\""
Steps to Reproduce
Attempt 1 — update existing trigger, no event_type (mirrors exact shape returned by GET):
{
"trigger_id": "trig_01N1cNuiSwnMByzYDCqEbc8X",
"job_config": {
"ccr": {
"environment_id": "env_01W67EKQHKsu2u12qi1tAq6a",
"events": [{"data": {"message": {"role": "user", "content": "test", "type": "user"}}}],
"session_context": {"allowed_tools": ["preset:default"]}
}
}
}
→ HTTP 400: translate job_config v1→v2: events[0]: event_type is required
Attempt 2 — create new trigger, no event_type:
Same job_config shape with name + cron_expression added.
→ Same HTTP 400.
Attempt 3 — create new trigger, with event_type: "user_message":
Added "event_type": "user_message" inside events[0].
→ HTTP 400: translate job_config v1→v2: job_config is not a valid CreateSessionRequest: proto: unknown field "event_type"
Attempt 4 — minimal create with flat prompt:
{"name": "test", "cron_expression": "0 12 * * 1-5", "job_config": {"prompt": "Say hello."}}
→ HTTP 400: translate job_config v1→v2: job_config is not a valid CreateSessionRequest: proto: unknown field "prompt"
The v1→v2 translator runs on every ccr payload regardless of whether it is a create or update. It requires event_type to translate but then rejects it as unknown in the target schema.
Claude Model
Not sure / Multiple models
Is this a regression?
Yes, this worked in a previous version (tool was added and functional in v2.1.128)
Claude Code Version
2.1.153 (Claude Code)
Platform
Anthropic API
Operating System
macOS
Terminal/Shell
Terminal.app (macOS)
Additional Information
Related issues:
- #43440 — RemoteTrigger 500s on list/update/delete (April 2026)
- #53581 — Routines /run endpoint HTTP 400 regression
This issue has 1 comment on GitHub. Read the full discussion on GitHub ↗