Closed
Description
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
Labels
No labels