Skip to content
Latchkey

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

  1. Choose one Dagger version for the CLI, SDK, and engine.
  2. Pin the CLI install to that version in CI.
  3. 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 sh

Match 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.0

How 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

Tired of flaky CI? Latchkey auto-heals failed jobs and retries them for you. Start free →