-
Notifications
You must be signed in to change notification settings - Fork 83
Open
Description
What version of Hono?
hono@4.11.9@hono/node-server@1.19.9
What version of Node.js?
- Vercel function runtime
nodejs24.x
What happened?
Using the official Vercel adapter from @hono/node-server/vercel:
import { handle } from '@hono/node-server/vercel'
import app from '../apps/api/src/server.js'
export default handle(app)in a Vercel function (api/server.ts) with rewrites (/api/* and /rpc/* -> /api/server), GET requests work, but POST requests never return a response (client times out).
Repro matrix from Preview deployment:
| Case | Method | Path | Result |
|---|---|---|---|
| health | GET | /api/health (separate function) |
200 |
| slack-url-verification | POST | /api/slack |
timeout (curl exit 28 after 25s) |
| slack-interactivity-invalid-signature | POST | /api/slack/interactivity |
timeout (curl exit 28 after 25s) |
| rpc-ping-no-csrf | POST | /rpc/ping |
timeout (curl exit 28 after 25s) |
| rpc-ping-csrf-no-auth | POST | /rpc/ping |
timeout (curl exit 28 after 25s) |
When we switch back to a custom Node IncomingMessage/ServerResponse bridge that buffers the request body and calls app.fetch(request), the same POST routes return immediately with expected app-level responses.
Minimal reproduction steps
- Deploy a Vite + Hono app on Vercel with:
- API function at
api/server.ts - rewrites
/api/:path((?!health$|server$).*)->/api/serverand/rpc/(.*)->/api/server
- API function at
- Use
@hono/node-server/vercelhandle(app)as above - Call POST route (JSON or form-encoded) via Preview URL
- Observe no response body/status until client timeout
Expected
POST routes should behave like GET routes and return app responses.
Actual
POST routes hang indefinitely on Vercel Node runtime.
Additional context
- Using
hono/vercelin this same Node function setup also hangs, but that appears to be a signature mismatch (Request handler in Node req/res runtime). - The issue here is specifically with the Node-targeted Vercel adapter from
@hono/node-server/vercel.
Reactions are currently unavailable
Metadata
Metadata
Assignees
Labels
No labels