vercel / vercel/next.js

[PPR] Dynamic route segment params are double encoded

Open
#71,005 12 comments 2 reactions 1 assignee View on GitHub

@wyattjoh is already working on this.

Since Mar 13, 2025.

Cache Components
Dominant language
JavaScript
Stars
142k
Forks
32.4k
Avg merge
2d 14h
Merged PRs (30d)
351

Description

Link to the code that reproduces this issue

https://github.com/marmalade-labs/ppr-double-encode

To Reproduce
  1. Navigate to https://ppr-double-encode.vercel.app/hello%20world

(note: this bug only shows when deployed to Vercel, not when running locally).

Current vs. Expected behavior

I expected hello%20world to be displayed but instead we see hello%2520world. When running locally or with PPR disabled, it works as expected.

Provide environment information
Operating System:
  Platform: linux
  Arch: x64
  Version: #1 SMP PREEMPT_DYNAMIC Fri, 04 Oct 2024 21:51:11 +0000
  Available memory (MB): 62093
  Available CPU cores: 16
Binaries:
  Node: 22.9.0
  npm: 10.8.3
  Yarn: 1.22.22
  pnpm: 9.12.1
Relevant Packages:
  next: 15.0.0-canary.181 // Latest available version is detected (15.0.0-canary.181).
  eslint-config-next: N/A
  react: 19.0.0-rc-2d16326d-20240930
  react-dom: 19.0.0-rc-2d16326d-20240930
  typescript: 5.3.3
Next.js Config:
  output: N/A
Which area(s) are affected? (Select all that apply)

Partial Prerendering (PPR)

Which stage(s) are affected? (Select all that apply)

Vercel (Deployed)

Additional context

@wyattjoh, @ztanner - thought you might find this one interesting !

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.