Skip to main content
wiring/server-actions
<detail> names the exact gap doctor found: vendo/vendo-actions.ts is missing, or vendo/vendo-actions.ts does not register <action names>, or app/api/vendo/[...vendo]/route.ts does not pass serverActions inside createVendo({ … }). Doctor can name more than one of these at once. check: wiring/server-actions · error_code: E-WIRE-009 · doctor exits: 1

What you’re seeing

Everything else can be green. The failure only shows up when a user’s turn calls one of the affected tools: it fails closed, with no work performed and no error the user can act on.

Why

vendo init generates the registration map and the route the first time it runs, and it only ever creates: a file you already have is never rewritten. Server actions added after that first run don’t register themselves. The commonest shape is a half-applied paste, where the import { serverActions } line landed but the serverActions, property never went into the createVendo({ … }) call.

The fix

Run npx vendo init again.
It prints the exact paste for each file it will not touch: the import line plus serverActions, inside createVendo({ … }), and the missing map entries, with aliases that continue your file’s own numbering.
app/api/vendo/[...vendo]/route.ts
Apply the paste and re-run npx vendo doctor. Actions you disabled in .vendo/overrides.json are never reported here; the runtime never dispatches those, so registering them buys nothing.
  • E-WIRE-003: the route this registration map lives beside
  • E-WIRE-004: the client mount this route ultimately serves