We are seeing a reproducible deployment/runtime issue affecting CedarJS (fork of Redwood) and RedwoodJS-style Vercel functions on Node 24.
This is currently blocking production deployments for our main CedarJS API stack, but we have also reproduced the same failure in a fresh minimal Cedar app with no production database, no auth setup, no migrations, and no app-specific business logic. We also replicated this issue on the latest version of Redwood of which has been stable since Oct 2025.
Summary
Vercel successfully builds and deploys the app, but requests to Cedar/Redwood API functions hang before response headers are sent.
The client eventually receives a timeout / 504, and Vercel runtime logs show unhandled rejections inside Vercel's Node runtime bridge:
Unhandled Rejection: SyntaxError: Unexpected end of JSON input at JSON.parse (<anonymous>) at IncomingMessage.<anonymous> (/opt/rust/nodejs.js:2:14238)We have also seen:
Unhandled Rejection: TypeError: Cannot read properties of undefined (reading 'path') at IncomingMessage.<anonymous> (/opt/rust/nodejs.js:2:14272)The failure appears to occur before our handler code can respond.
Minimal public reproduction
Repo:
https://github.com/aaronvanston/cedar-vercel-node24-repro
Production deployment:
https://cedar-vercel-node24-repro.vercel.app/
Failing endpoint:
https://cedar-vercel-node24-repro.vercel.app/api/ping
Deployment URL:
https://cedar-vercel-node24-repro-cj92t5cx8-aaron-vanston.vercel.app
Deployment ID:
dpl_2GAYKLK7kt8zSSRpNpRaPfkop98NRuntime for api/ping:
nodejs24.xThis repro is a fresh CedarJS app created with:
npx create-cedar-app@4.1.0 cedar-vercel-node24-repro --yes --typescript --no-git-init --telemetry false --no-install --node-check falseThe only intentional changes are:
api/src/functions/ping.ts: minimal JSON response functionvercel.json: usesyarn cedar deploy vercel.yarnrc.yml: pins Yarn 4 / node-modules linker
The minimal api/ping function times out with no response bytes received. Runtime logs point to /opt/rust/nodejs.js, not userland code.
Production impact
Our main affected Vercel project is a CedarJS API app deployed as Vercel Node functions.
Affected endpoints include:
/api/graphql/api/inngest- other Cedar-generated API functions
The request reaches Vercel edge/TLS successfully, but the function invocation hangs before first byte / response headers. Vercel later kills it after our configured timeout.
Known production-style failure example:
Time: 2026-05-08 16:31:54 AEST / 2026-05-08 06:31:54 UTCRegion: Sydney / ap-southeast-2URL: POST https://core-n3wj0c57s.preview.buildpass.com.au/api/graphqlDeployment: dpl_DN5PL4HPz33mkexBkBjAhEkEkg3bResult: request canceled after 30s awaiting headersVercel request ID: syd1::fzxp8-1778222604740-f03d71bc7f7aOther affected deployments include:
dpl_4hJVFVU1GTfQRshY8A137mGsDC9ndpl_DN5PL4HPz33mkexBkBjAhEkEkg3bdpl_3Qd9okLy6X49YnBf37Eak3tmpQuLEarliest runtime failure we found
The earliest pulled Vercel runtime 504 evidence was around:
2026-05-08 14:47:20 AEST / 2026-05-08 04:47:20 UTCDeployment: dpl_4hJVFVU1GTfQRshY8A137mGsDC9nDomain: api.XXXXXXXXXXPath: POST /api/graphqlStatus: 504That deployment completed at approximately:
2026-05-08 14:46:19 AEST / 2026-05-08 04:46:19 UTCSo the first visible failures started immediately after the deployment became active.
Runtime evidence
Vercel logs show repeated timeout/runtime bridge failures like:
Vercel Runtime Timeout Error: Task timed out after 120 secondsNode.js process exited with exit status: 128And unhandled rejections inside Vercel runtime internals:
Unhandled Rejection: TypeError: Cannot read properties of undefined (reading 'path') at IncomingMessage.<anonymous> (/opt/rust/nodejs.js:2:14272)Also:
Unhandled Rejection: SyntaxError: Unexpected end of JSON input at JSON.parse (<anonymous>) at IncomingMessage.<anonymous> (/opt/rust/nodejs.js:2:14238)Some traces also include OpenTelemetry/Sentry frames around IncomingMessage handling, but the failing frame itself is in /opt/rust/nodejs.js.
The failure still occurs in a fresh Cedar app with a tiny unauthenticated function.
The runtime stack points into:
/opt/rust/nodejs.jsThe failing behavior appears related to how Vercel is bridging incoming requests into Redwood/Cedar-style AWS Lambda handler functions.
Cedar custom functions currently use the AWS-style handler shape:
export const handler = async (event, context) => { return { statusCode: 200, body: JSON.stringify({ ok: true }), }}Relevant Cedar docs:
https://cedarjs.com/docs/how-to/custom-function/
There is already upstream context around Redwood/Cedar using AWS Lambda handler output on Vercel rather than web-standard Request / Response handlers:
- https://github.com/redwoodjs/graphql/issues/12073
- https://github.com/redwoodjs/graphql/pull/12107
- https://github.com/cedarjs/cedar/issues/526
Related Vercel builder/runtime context
The Vercel Redwood builder still appears relevant because Cedar deploys through the Redwood-style Vercel path.
Relevant Vercel release:
https://github.com/vercel/vercel/releases/tag/%40vercel%2Fredwood%402.4.13
We tested multiple Cedar versions, including latest Cedar in addition to latest Redwoodjs, and the failure still reproduced.