Skip to content

Nextjs 15: Failed to generate cache key for all unary calls in RSC #1326

@mrthinger

Description

@mrthinger

When calling a unary method using @connectrpc/connect-web in a React server component in Next.js 15, you will always get the following error:

Failed to generate cache key for https://demo.connectrpc.com/connectrpc.eliza.v1.ElizaService/Say

Example: https://github.com/connectrpc/examples-es/blob/938b4cbd7050bd2e7f73f31ccc89dabfc3443e3b/nextjs/app/react-server-actions/page.tsx#L22

To Reproduce
node 22

git clone --depth 1 --branch main https://github.com/connectrpc/examples-es.git
cd examples-es
git fetch --depth 1 origin 2b0dee9557f3e596e3dee326a173f443c4a8663a
git checkout 2b0dee9557f3e596e3dee326a173f443c4a8663a
cd nextjs
npm install
npm run generate
npm run start

Once the server is running:

  1. Open http://localhost:3000/react-server-actions in your browser
  2. Enter some text in the input field
  3. Click send or press enter

Additional context
Error seems to be from:
https://github.com/vercel/next.js/blob/v15.0.2/packages/next/src/server/lib/patch-fetch.ts#L536

The source of the issue appears to be that the cache key computation doesn't account for the fetch body being a Uint8Array:
https://github.com/vercel/next.js/blob/v15.0.2/packages/next/src/server/lib/incremental-cache/index.ts#L265

I don't know why Next14 didn't have this issue but 15 does. I thought POST fetches are still supposed to bypass cache completely?

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugSomething isn't working

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions