Composer "Your requirements could not be resolved to an installable set"
Composer’s solver tries to find one version of every package that satisfies every constraint at once. When constraints conflict - two packages demanding incompatible versions, or a platform requirement that cannot be met - it reports the chain it could not satisfy and stops.
What this error means
composer install or composer update fails with "Your requirements could not be resolved to an installable set of packages." followed by a "Problem N" explanation naming the conflicting packages and versions.
Your requirements could not be resolved to an installable set of packages.
Problem 1
- Root composer.json requires acme/foo ^3.0, found acme/foo[3.0.0]
but it conflicts with another require.
- acme/bar 2.1.0 requires acme/foo ^2.0 -> found acme/foo[2.0.0, ...].Common causes
Two packages require incompatible versions of a shared dependency
A direct and a transitive requirement demand non-overlapping versions of the same package, leaving the solver no valid choice.
A root constraint is too strict
A pinned version in composer.json conflicts with what another package now needs, so no installable set exists.
A platform requirement cannot be met
A package requires a PHP version or extension the CI environment does not provide, which the solver treats as unsatisfiable.
How to fix it
Read the "Problem" block and adjust constraints
- Read each Problem N line to see which two requirements conflict.
- Bump or loosen the package holding the older constraint so the ranges overlap.
- Run composer update <vendor/pkg> for just the conflicting packages.
Diagnose why a version is forced
Ask Composer why a package is pinned to a version to find the real constraint.
composer why-not acme/foo 3.0.0
composer why acme/barMatch the CI platform to your requirements
If the conflict is a platform requirement, install the right PHP version/extension rather than ignoring the check.
- uses: shivammathur/setup-php@v2
with:
php-version: '8.3'
extensions: mbstring, intlHow to prevent it
- Use the loosest constraint that still expresses your real requirement.
- Upgrade related packages together so transitive ranges stay aligned.
- Match the CI PHP version and extensions to what composer.json requires.