abiosoft/colima · error

error starting %s: %w

Error message

error starting %s: %w

What it means

The container runtime was provisioned but failed to actually start inside the guest; cont.Start's error is wrapped with the runtime's name (docker/containerd/incus). The VM is up at this point, so the daemon itself refused to start: config errors, socket conflicts, or disk issues in the guest are typical.

Source

Thrown at app/app.go:139

	// start vm
	if err := c.guest.Start(ctx, conf); err != nil {
		return fmt.Errorf("error starting vm: %w", err)
	}

	// run after-boot provision scripts
	c.runProvisionScripts(conf, config.ProvisionModeAfterBoot)

	// provision and start container runtimes
	for _, cont := range containers {
		log := log.WithField("context", cont.Name())
		log.Println("provisioning ...")
		if err := cont.Provision(ctx); err != nil {
			return fmt.Errorf("error provisioning %s: %w", cont.Name(), err)
		}
		log.Println("starting ...")
		if err := cont.Start(ctx); err != nil {
			return fmt.Errorf("error starting %s: %w", cont.Name(), err)
		}
	}

	// run ready provision scripts
	c.runProvisionScripts(conf, config.ProvisionModeReady)

	// persist the current runtime
	if err := c.setRuntime(conf.Runtime); err != nil {
		log.Error(fmt.Errorf("error persisting runtime settings: %w", err))
	}

	// persist the kubernetes config
	if err := c.setKubernetes(conf.Kubernetes); err != nil {
		log.Error(fmt.Errorf("error persisting kubernetes settings: %w", err))
	}

	log.Println("done")

View on GitHub (pinned to c3a5f9184d)

Solutions

  1. Inspect the daemon inside the guest: `colima ssh`, then check the runtime's service log under /var/log or dockerd output
  2. Restart cleanly: `colima stop && colima start --verbose`
  3. Free guest disk space if the volume is full (`docker system prune` inside `colima ssh`)
  4. Recreate the VM to clear stale runtime state: `colima delete && colima start`
Defensive patterns

Strategy: retry

Try / catch

if err := a.Start(ctx, conf); err != nil {
    if strings.Contains(err.Error(), "error starting docker") || strings.Contains(err.Error(), "error starting containerd") {
        // restart once via stop/start; recreate the instance if it persists
        _ = a.Stop(false)
        err = a.Start(ctx, conf)
    }
    if err != nil {
        return err
    }
}
// verify the daemon actually answers
if err := a.SSH("docker", "version", "--format", "{{.Server.Version}}"); err != nil {
    return err
}

Prevention

When it happens

Trigger: colima start when the docker/containerd daemon inside the VM fails: invalid daemon flags carried over in the instance config, leftover socket files from an unclean shutdown, guest disk full, or a runtime binary mismatched with the guest after an upgrade.

Common situations: Custom docker daemon settings incompatible with the upgraded docker version; upgrading colima over an old VM whose runtime state is stale; guest filesystem full from pulled images.

Related errors


AI-assisted analysis of abiosoft/colima@c3a5f9184d (2026-08-15). Data as JSON: /api/errors/cd48112ccc77cd88. Report an issue: GitHub.