Skip to content

React 19.3.0 bump is blocked by @react-three/fiber's <19.3 peer cap #7370

Description

@atomantic

Problem

Dependabot has opened #7292 (react 19.2.8 → 19.3.0) and #7290 (react-dom
19.2.8 → 19.3.0). Both fail CI at npm ci, before any test runs:

Conflicting peer dependency: react@19.2.8
  peer react@">=19 <19.3" from @react-three/fiber@9.7.0

@react-three/fiber@9.7.0 is the latest stable release and caps React at
>=19 <19.3 for both react and react-dom. That cap reflects real coupling,
not caution: r3f ships its own reconciler and depends on scheduler@^0.27.0,
while React 19.3.0 ships scheduler@0.28.0. Installing with
--legacy-peer-deps would put two scheduler copies under one renderer, so
forcing the resolution is not an acceptable workaround.

@react-three/drei@10.7.8 only requires @react-three/fiber@^9.0.0, so it adds
no second constraint — r3f is the sole blocker.

Note for whoever picks this up: the first CI runs on both PRs showed every job
cancelled rather than failed. That is not a separate problem —
scripts/cancel-current-ci-run.js cancels the whole run on the first job
failure, so the same ERESOLVE produced both symptoms. Re-running the workflow
surfaces the real error.

Fix

Wait for an @react-three/fiber release that widens its React peer range past
19.3, then:

  1. Bump @react-three/fiber (and @react-three/drei if its own peer moves) in
    client/package.json.
  2. Ask Dependabot to rebase build(deps): bump react from 19.2.8 to 19.3.0 in /client #7292 and build(deps): bump react-dom from 19.2.8 to 19.3.0 in /client #7290 (@dependabot rebase), or close
    them and let it re-open against the new floor.
  3. Merge react first, then react-domreact-dom@19.3.0 peers on
    react@^19.3.0, so the reverse order re-introduces the same ERESOLVE.
  4. Run the client 3D suites, which are the surface a reconciler/scheduler
    mismatch would break.

Upstream tracking: https://github.com/pmndrs/react-three-fiber (peer range lives
in that package's package.json; 9.7.0 is current latest, with only
10.0.0-canary.* / 10.0.0-alpha.* published beyond it).

Do not merge either PR until the peer range allows it — the install cannot
succeed.

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    blockedBlocked on another issue/PR — skip in autonomous claim runsdependenciesProposed from a dependency-freedom auditeffort:lowLow reasoning budget per stepmodel:lightMechanical single-file changeplanTracked by /do:replanplanner:opus-5Plan authored by the opus-5 model

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions