Skip to content

fix(router): register engine schemas at startup to fix webhook processing#899

Merged
zbigniewsobiecki merged 1 commit intodevfrom
fix/router-register-engine-schemas
Mar 16, 2026
Merged

fix(router): register engine schemas at startup to fix webhook processing#899
zbigniewsobiecki merged 1 commit intodevfrom
fix/router-register-engine-schemas

Conversation

@zbigniewsobiecki
Copy link
Copy Markdown
Member

Root cause

TrelloRouterAdapter.parseWebhook() (and JIRA's equivalent) calls loadProjectConfig()validateConfig()EngineSettingsSchema. That Zod schema validates engine keys against a dynamic registry populated by registerBuiltInEngines().

The router never called registerBuiltInEngines() at startup. So for any project with engineSettings.claude-code (or codex/opencode) configured, every call to loadProjectConfig() threw:

ZodError: Unsupported engine settings for "claude-code"

parseWebhook catches errors by returning null → the webhook is silently dropped → no job enqueued, no agent triggered.

This is why moving cards in Trello for the llmist project (which has claude-code engineSettings) never fired any agents.

Fix

Call registerBuiltInEngines() once at router startup, before any request handler runs — identical to the dashboard fix in #896.

Affected scope

Any project with per-project engineSettings using claude-code, codex, or opencode backend. Projects without engineSettings are unaffected.

Test plan

  • npm run typecheck clean
  • npm run lint clean
  • npm test — 288 files, 5392 tests pass
  • CI green
  • Deploy cascade-router-dev, move Trello card → verify job is enqueued and agent fires

🤖 Generated with Claude Code

…sing

The router's loadProjectConfig() calls validateConfig() which runs
EngineSettingsSchema — a Zod schema that validates against a dynamic
registry populated by registerBuiltInEngines(). Without calling
registerBuiltInEngines() at startup, any project with claude-code,
codex, or opencode engineSettings configured causes a ZodError:

  Unsupported engine settings for "claude-code"

This error is thrown inside TrelloRouterAdapter.parseWebhook() and
JiraRouterAdapter.parseWebhook(), which return null on any unhandled
exception — so all webhooks for affected projects are silently dropped
with no job enqueued and no agent triggered.

Fix: call registerBuiltInEngines() once at router startup, before any
request handler runs. Identical to the dashboard fix in #896.

Affected projects: any project with per-project engineSettings using
claude-code, codex, or opencode backend.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
@zbigniewsobiecki zbigniewsobiecki merged commit 3af4540 into dev Mar 16, 2026
6 checks passed
@zbigniewsobiecki zbigniewsobiecki deleted the fix/router-register-engine-schemas branch March 16, 2026 13:39
zbigniewsobiecki added a commit that referenced this pull request Mar 16, 2026
Same bug as router (#899) and dashboard (#896): worker-entry.ts calls
loadConfig() at line 253 which runs EngineSettingsSchema validation.
The dynamic ENGINE_SETTINGS_SCHEMAS registry was empty because
registerBuiltInEngines() had not yet been called — it only runs later
when createAgentRegistry() initializes.

This caused every worker container to crash immediately with:

  ZodError: Unsupported engine settings for "claude-code"

...for any project with claude-code/codex/opencode engineSettings,
making all Trello/JIRA/GitHub agent runs fail at job start.

Fix: call registerBuiltInEngines() once before loadConfig().

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
zbigniewsobiecki added a commit that referenced this pull request Mar 16, 2026
…#900)

Same bug as router (#899) and dashboard (#896): worker-entry.ts calls
loadConfig() at line 253 which runs EngineSettingsSchema validation.
The dynamic ENGINE_SETTINGS_SCHEMAS registry was empty because
registerBuiltInEngines() had not yet been called — it only runs later
when createAgentRegistry() initializes.

This caused every worker container to crash immediately with:

  ZodError: Unsupported engine settings for "claude-code"

...for any project with claude-code/codex/opencode engineSettings,
making all Trello/JIRA/GitHub agent runs fail at job start.

Fix: call registerBuiltInEngines() once before loadConfig().

Co-authored-by: Claude Sonnet 4.6 <noreply@anthropic.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant