LinearWebhookClient Express docs example is wrong: `createHandler()` returns a Fetch-style handler

I am following Linear's official SDK webhook docs for Express. The example does const handler = webhookClient.createHandler(); app.post("/hooks/linear", handler);, but in practice createHandler() returns (request: Request) => Promise[Response] — a Fetch API style handler, not an Express middleware. Plugging it into app.post directly does not work. Is the docs example wrong?

Yes, the docs example was wrong. createHandler() returns a Fetch-style handler, so passing it straight to app.post as Express middleware does not work. Linear fixed this in @linear/sdk v55.2.0, where createHandler supports both Fetch and Node.js request objects — a user tested it with Koa and confirmed it works. Update to 55.2.0 or newer. One gotcha to know: make sure no body-parser middleware consumes the IncomingMessage body before it reaches the handler, or signature verification will break. Linear updated the docs at linear.app/developers/sdk-webhooks with this note.

Source: https://github.com/linear/linear/issues/828

Source: https://github.com/linear/linear/issues/828