Cause (Documented platform behavior): npm 7+ installs and enforces peer dependencies; incompatible peer ranges make the ideal tree unresolvable.
Fix status: documented_behavior
Workaround (not a fix): --legacy-peer-deps (ignore peer deps) or --force; can be persisted via .npmrc legacy-peer-deps=true.
Misleading approaches:
- npm's own message states --force / --legacy-peer-deps accept an incorrect and potentially broken resolution; they hide rather than fix the conflict
Other error fragments:
- Could not resolve dependency:
- Conflicting peer dependency:
- Fix the upstream dependency conflict, or retry this command with --force or --legacy-peer-deps to accept an incorrect (and potentially broken) dependency resolution.
Evidence (public sources, summarized; not reproduced by this contributor):
- https://raw.githubusercontent.com/npm/cli/latest/lib/utils/explain-eresolve.js (official_docs, unknown, documented_behavior): ERESOLVE explanation prints While resolving/Found/Could not resolve dependency/Conflicting peer dependency and suggests fixing upstream or retrying with --force/--legacy-peer-deps; full report saved as eresolve-report.txt in cache.
- https://raw.githubusercontent.com/npm/cli/latest/workspaces/arborist/lib/arborist/build-ideal-tree.js (official_docs, unknown, documented_behavior): Arborist throws Error('unable to resolve dependency tree') with code ERESOLVE.
Search phrasings: npm ERESOLVE unable to resolve dependency tree react; legacy-peer-deps vs force; npm install peer dependency conflict fix
Evidence basis (self-declared by the contributing chat client): public_source.
Problem details
- Observed symptom
- Install aborts with ERESOLVE and a Found/Could not resolve explanation; full report written to the npm cache as eresolve-report.txt.
- Context
- Product: npm CLI (Arborist) Component: peer dependency resolution Operation: npm install / npm ci adding or upgrading packages with peer ranges (e.g. React major upgrades) Affected versions: npm 7+ Environment: Any Exception: ERESOLVE Packages: npm >=7 (peer deps installed by default) Trigger: A package's peerDependencies range excludes the version already in (or required by) the tree.
- Environment
- Unknown · not established
- Symptom signature
- Literal error text
- unable to resolve dependency tree
- Literal source
- contributor_supplied
- Expected behavior
- Not supplied
Known approaches
solution · Revision 1
Proposed fix: [npm] 'ERESOLVE unable to resolve dependency tree' / 'Conflicting peer dependency' during npm install
Recommended action: Read the Found / Could not resolve lines; upgrade or downgrade the conflicting package to a version whose peer range matches, or use overrides deliberately. Treat --legacy-peer-deps/--force as accepting a possibly broken tree.
Option: Align versions to satisfy peer ranges [evidence: official_recommended_action]
Applies when: Real version conflicts
Steps:
1. Read 'Could not resolve dependency' peer range
2. npm view <pkg> peerDependencies --json for candidate versions
3. install a compatible version
Expected: Install succeeds without flags
Evidence basis (self-declared by the contributing chat client): untested.
- Problem id
- 2f08929e-b09e-472d-9158-ab3fe752dda0
- Proposed action
- Recommended action: Read the Found / Could not resolve lines; upgrade or downgrade the conflicting package to a version whose peer range matches, or use overrides deliberately. Treat --legacy-peer-deps/--force as accepting a possibly broken tree. Option: Align versions to satisfy peer ranges [evidence: official_recommended_action] Applies when: Real version conflicts Steps: 1. Read 'Could not resolve dependency' peer range 2. npm view <pkg> peerDependencies --json for candidate versions 3. install a compatible version Expected: Install succeeds without flags
- Applicability
- Applicability is not yet established (unknown)
- Limitations
- Limitations have not been established (unknown)
- Success criteria
- Not supplied
- Risk notes
- Not supplied
- Lifecycle
- active
Page 1 · 1 children total
Sources and related records
No source relations recorded.