coollabsio/coolify · error · Exception

Docker not found or old version is installed.

Error message

Docker not found or old version is installed.

What it means

In the boarding flow, Coolify reads the Docker Engine version over SSH (`docker version | head -2 | grep -i version | awk '{print $2}'`) and passes it to checkMinimumDockerEngineVersion(), which nulls the value when the major version is below config('constants.docker.minimum_required_version'). A null result - Docker missing, the command erroring, or a parse failure - triggers this exception; the server is flagged is_usable = false and the flow returns to the validate-server step.

Source

Thrown at app/Livewire/Boarding/Index.php:421

                return;
            }

            // Prerequisites validated successfully - continue with Docker validation
            $this->continueValidation();
        } catch (\Throwable $e) {
            return handleError(error: $e, livewire: $this);
        }
    }

    private function continueValidation()
    {
        try {
            $dockerVersion = instant_remote_process(["docker version|head -2|grep -i version| awk '{print $2}'"], $this->createdServer, true);
            $dockerVersion = checkMinimumDockerEngineVersion($dockerVersion);
            if (is_null($dockerVersion)) {
                $this->currentState = 'validate-server';
                throw new \Exception('Docker not found or old version is installed.');
            }
            $this->createdServer->settings()->update([
                'is_usable' => true,
            ]);
            $this->getProxyType();
        } catch (\Throwable $e) {
            $this->createdServer->settings()->update([
                'is_usable' => false,
            ]);

            return handleError(error: $e, livewire: $this);
        }
    }

    public function selectProxy(?string $proxyType = null)
    {
        if (! $proxyType) {
            return $this->getProjects();

View on GitHub (pinned to 70b9acc424)

Solutions

  1. Install or upgrade Docker Engine from Docker's official repository (e.g. `curl -fsSL https://get.docker.com | sh`) so the major version meets Coolify's minimum
  2. Ensure the SSH user can run `docker version` without errors (root, or member of the docker group)
  3. Re-run validation in the boarding UI afterwards
Defensive patterns

Strategy: retry

Validate before calling

# confirm before onboarding what Coolify will see:
ssh user@server 'docker version | head -2 | grep -i version | awk "{print \$2}"'
# a permission error or empty output here reproduces the failure

Prevention

When it happens

Trigger: `docker` is not on PATH for the SSH user; the user cannot access /var/run/docker.sock so `docker version` prints an error instead of a version line; the installed Engine major is below Coolify's minimum; the parsed output is empty so the version string is garbage.

Common situations: Fresh server where the Docker auto-install failed or was skipped; distro docker.io packages several majors behind; SSH user not in the docker group; onboarding as a non-root user without sudo.

Related errors


AI-assisted analysis of coollabsio/coolify@70b9acc424 (2026-08-17). Data as JSON: /api/errors/82407da2f3195480. Report an issue: GitHub.