Dagger CLI/engine "incompatible version" in CI
The Dagger CLI, SDK, and engine must be compatible. When a CI job pins one at a version that does not match the engine it connects to, Dagger reports the versions are incompatible and refuses to run.
What this error means
dagger fails with "incompatible" or "version mismatch" between the CLI/SDK and the engine, before or during module load.
dagger
Error: failed to connect to engine: incompatible engine version v0.9.3 (client requires v0.11.x)Common causes
A pinned CLI connecting to a different engine
A CI-pinned CLI version connects to a provided engine service running a different version, which the CLI rejects.
SDK generated against another engine
Module bindings generated by one SDK version can be incompatible with an engine on a different release line.
How to fix it
Pin CLI, SDK, and engine together
- Choose one Dagger version for the CLI, SDK, and engine.
- Pin the CLI install to that version in CI.
- Match the provided engine service image to the same version.
Terminal
curl -fsSL https://dl.dagger.io/dagger/install.sh | DAGGER_VERSION=0.11.0 shMatch the engine service image
When running the engine as a service, use the image tag that matches the pinned CLI version.
.gitlab-ci.yml
services:
dagger-engine:
image: registry.dagger.io/engine:v0.11.0How to prevent it
- Pin one Dagger version across CLI, SDK, and engine.
- Update all three together, not one at a time.
- Match provided engine service images to the CLI.
Related guides
Dagger "failed to connect to engine" in CIFix Dagger "failed to connect to engine" in CI - the Dagger CLI could not reach its engine container, usually…
Dagger "function not found" in CIFix Dagger "function ... not found" in CI - the function you called is not exposed by the loaded module, ofte…
Dagger "input:" GraphQL error in CIFix Dagger "Error: input: ..." GraphQL errors in CI - the engine rejected a query, usually a bad field, argum…