Skip to content

The validateWebhook function crashes in nodejs v0.18.x when called from Next.js 12.1.0 (pages router) #297

Closed
@jakedahn

Description

@jakedahn

When I run the validateWebhook function from within a Next.js 12.1.0 pages-router Next.js app with Node.js v18.18.0, I get the following error:

TypeError: requestData.headers.get is not a function
    at validateWebhook (/Users/jakedahn/next12-replicate-webhook/node_modules/replicate/lib/util.js:38:30)
    at handler (webpack-internal:///(api)/./pages/api/replicate-webhook.js:22:83)
    at K (/Users/jakedahn/next12-replicate-webhook/node_modules/next/dist/compiled/next-server/pages-api.runtime.dev.js:21:2877)
    at process.processTicksAndRejections (node:internal/process/task_queues:95:5)
    at async U.render (/Users/jakedahn/next12-replicate-webhook/node_modules/next/dist/compiled/next-server/pages-api.runtime.dev.js:21:3955)
    at async DevServer.runApi (/Users/jakedahn/next12-replicate-webhook/node_modules/next/dist/server/next-server.js:598:9)
    at async NextNodeServer.handleCatchallRenderRequest (/Users/jakedahn/next12-replicate-webhook/node_modules/next/dist/server/next-server.js:269:37)
    at async DevServer.handleRequestImpl (/Users/jakedahn/next12-replicate-webhook/node_modules/next/dist/server/base-server.js:812:17)
    at async /Users/jakedahn/next12-replicate-webhook/node_modules/next/dist/server/dev/next-dev-server.js:339:20
    at async Span.traceAsyncFn (/Users/jakedahn/next12-replicate-webhook/node_modules/next/dist/trace/trace.js:154:20)
    at async DevServer.handleRequest (/Users/jakedahn/next12-replicate-webhook/node_modules/next/dist/server/dev/next-dev-server.js:336:24)
    at async invokeRender (/Users/jakedahn/next12-replicate-webhook/node_modules/next/dist/server/lib/router-server.js:173:21)
    at async handleRequest (/Users/jakedahn/next12-replicate-webhook/node_modules/next/dist/server/lib/router-server.js:350:24)
    at async requestHandlerImpl (/Users/jakedahn/next12-replicate-webhook/node_modules/next/dist/server/lib/router-server.js:374:13)
    at async Server.requestListener (/Users/jakedahn/next12-replicate-webhook/node_modules/next/dist/server/lib/start-server.js:141:13)

I suspect this is caused by some version-incompatible syntax differences with older versions of Node.js/Next.js and the latest versions.

To confirm this was a version problem, I ran the following snippet, which successfully printed LOG A 123, then crashed on test.headers.get("webhook-id").

  const test = {
    headers: {
      "webhook-id": "123",
      "webhook-timestamp": "456",
      "webhook-signature": "789",
    },
    body: "wheeeee",
  };

  console.log('LOG A, test.headers["webhook-id"])
  console.log('LOG B', test.headers.get("webhook-id"));

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions