v2 migration: duplicate solid-js copies break client-side routing with unclear router error
Nobody has claimed this yet.
- Dominant language
- TypeScript
- Stars
- 5.9k
- Forks
- 426
- Avg merge
- 1d 3h
- Merged PRs (30d)
- 11
Description
Summary
After migrating a small site from SolidStart v1 / Vinxi to SolidStart v2 / Vite / Nitro, client-side navigation broke in a non-obvious way:
- Clicking a route link updated the browser URL.
- The rendered page stayed on the previous route.
- The console error was:
TypeError: Cannot read properties of null (reading 'push')
Root cause
The app and @solidjs/start ended up with different copies of solid-js under pnpm:
- app:
solid-js@1.9.10 @solidjs/start@2.0.0:solid-js@1.9.14
That split Solid's reactive owner/context across module instances, so router context was null at runtime.
Workaround
Pin and force a single solid-js copy:
{
"dependencies": {
"solid-js": "^1.9.14"
},
"pnpm": {
"overrides": {
"solid-js": "^1.9.14"
}
}
}
After deduping, client-side navigation worked locally and on the Netlify deploy preview.
Request
Could SolidStart or Solid Router detect duplicate solid-js instances and surface a development-time error, or could the v2 migration guide call this out explicitly? The current runtime error does not point toward dependency duplication, which made this difficult to diagnose.
Environment
@solidjs/start:2.0.0@solidjs/router:0.16.3solid-js:1.9.10and1.9.14before dedupevite:8.2.1nitro:3.0.260610-betapnpm:10.33.4- Node:
24.19.0 - Deployment: Netlify
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start by reviewing the SolidStart v2 migration guide and the router behavior described for duplicate solid-js installations. Determine whether the requested outcome is a development-time diagnostic or migration documentation, then verify that the guidance or error clearly identifies dependency duplication and preserves working client-side navigation after deduping.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- vite
- Domain
- developer-experience
- Issue type
- Bug
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Quiet
- Clarity
- Mostly clear
- Newbie friendliness
- 48/100