Skip to content
Latchkey

Crossplane "cannot resolve package dependencies" in CI

Configuration and Provider packages declare dependsOn other packages with version constraints. If those constraints cannot be satisfied against what is installed or pullable, the package manager reports it cannot resolve dependencies and the package stays unhealthy.

What this error means

A Configuration or Provider stays HEALTHY False with an event "cannot resolve package dependencies" naming a dependency and constraint.

crossplane
cannot resolve package dependencies: cannot resolve dependencies:
missing dependency xpkg.upbound.io/upbound/provider-aws-s3
incompatible dependencies: existing provider-family-aws v1.2.0 does not satisfy >=v1.5.0

Diagnose it: state, credentials, or drift?

Infrastructure failures in CI are usually about state access or credentials rather than the configuration itself. Confirm the runner can reach and lock state before reading the plan output.

Terminal
terraform init -backend=true -input=false
terraform providers
terraform plan -input=false -no-color -detailed-exitcode
#   exit 0 = no changes, 2 = changes present, 1 = error

Common causes

A dependency version constraint is unsatisfiable

An installed dependency is older than a dependsOn >= constraint, and no compatible upgrade is allowed, so resolution fails.

A dependency cannot be pulled

The declared dependency image or tag does not exist or is unreachable, so the manager cannot resolve it.

How to fix it

Upgrade the conflicting dependency

  1. Read which dependency and constraint the event names.
  2. Upgrade the installed dependency to a version that satisfies the constraint.
  3. Wait for the Configuration/Provider to become healthy.
Terminal
kubectl get providers,configurations
kubectl describe configuration platform-ref-aws | sed -n '/Events/,$p'

Pin compatible dependency versions

Set explicit, compatible versions across the dependent packages so the manager has a resolvable set.

provider.yaml
spec:
  package: xpkg.upbound.io/upbound/provider-aws-s3:v1.5.0

How to prevent it

  • Pin compatible versions across dependent packages.
  • Upgrade dependencies together so constraints stay satisfiable.
  • Verify dependency images and tags exist before installing.

Frequently asked questions

What causes Crossplane "cannot resolve package dependencies" in CI?
There are 2 common causes: a dependency version constraint is unsatisfiable and a dependency cannot be pulled. An installed dependency is older than a dependsOn >= constraint, and no compatible upgrade is allowed, so resolution fails.
How do I fix Crossplane "cannot resolve package dependencies" in CI?
There are 2 fixes depending on which cause you have: upgrade the conflicting dependency and pin compatible dependency versions. Work through them in order, since the first is the most common.
What does Crossplane "cannot resolve package dependencies" in CI actually mean?
A Configuration or Provider stays HEALTHY False with an event "cannot resolve package dependencies" naming a dependency and constraint.
How do I stop Crossplane "cannot resolve package dependencies" in CI happening again?
Pin compatible versions across dependent packages. The prevention section lists 3 changes that keep it from recurring.

Related guides

References

Not every red build is your code. Latchkey repairs the ones that are not, on the runner. Start free → 30-day trial · No credit card