Skip to content
Latchkey

Composer "Your requirements could not be resolved to an installable set of packages" in CI

Composer explored every version combination in your composer.json and its transitive graph and found none that satisfies all constraints together. The "Problem" lines below the header name the exact packages that collide.

What this error means

composer install or update stops with "Your requirements could not be resolved to an installable set of packages" followed by one or more "Problem 1" blocks explaining the conflict.

Composer
Your requirements could not be resolved to an installable set of packages.

  Problem 1
    - Root composer.json requires guzzlehttp/guzzle ^6.0 but it conflicts with
      another require: symfony/http-client 6.4 requires guzzlehttp/guzzle ^7.0.

Common causes

Two packages require incompatible versions of a shared dependency

One require needs guzzlehttp/guzzle ^6 while another needs ^7. No single version is in both ranges, so no installable set exists.

A root constraint is tighter than the graph allows

A hard version in your root composer.json excludes the only releases that the rest of the graph can agree on.

How to fix it

Read the Problem block and loosen or upgrade

  1. Read each "Problem N" line to see which two requires collide on a shared package.
  2. Upgrade the package that pins the older range, or widen your root constraint to overlap both.
  3. Run the resolver again to confirm a set now exists.
Terminal
composer require guzzlehttp/guzzle:^7.0 --with-all-dependencies

Resolve once locally and commit the lock

Solve the graph on your machine and commit composer.lock so CI installs the resolved set instead of re-solving.

Terminal
composer update
git add composer.json composer.lock

How to prevent it

  • Commit composer.lock so CI installs a known-good set instead of re-solving.
  • Prefer caret ranges over hard pins in your root requires.
  • Upgrade related packages together so shared dependencies stay compatible.

Frequently asked questions

What causes ""could not be resolved to an installable set""?
One require needs guzzlehttp/guzzle ^6 while another needs ^7. No single version is in both ranges, so no installable set exists.
How do I fix "could not be resolved to an installable set"?
Read the Problem block and loosen or upgrade

Related guides

References

Latchkey auto-heals failures like this one - detected, fixed, and retried without you. Start free → 30-day trial · No credit card