abiosoft/colima · error

runtime disk provisioned for %s runtime. Delete container da

Error message

runtime disk provisioned for %s runtime. Delete container data with 'colima delete --data' before using another runtime

What it means

Colima keeps a single data disk per profile and records which container runtime (docker or containerd) it was formatted for in the host-side state store (store.Load -> DiskRuntime). When the persisted state says DiskFormatted with a DiskRuntime that differs from the runtime in the incoming config, provisioning aborts to prevent the VM from re-formatting a disk that already holds another runtime's container data. The message names the runtime the disk was originally provisioned for.

Source

Thrown at environment/vm/lima/disk.go:47

		// runtime disk is not required when no runtime is in use
		return nil
	}

	disk := dataDisk(conf.Runtime)

	s, _ := store.Load()
	format := !s.DiskFormatted // only format if not previously formatted

	if !limautil.HasDisk() {
		if err := limautil.CreateDisk(conf.Disk); err != nil {
			return fmt.Errorf("error creating runtime disk: %w", err)
		}
		format = true // new disk should be formated
	}

	// when disk is formatted for the wrong runtime, prevent use
	if s.DiskFormatted && s.DiskRuntime != "" && s.DiskRuntime != conf.Runtime {
		return fmt.Errorf("runtime disk provisioned for %s runtime. Delete container data with 'colima delete --data' before using another runtime", s.DiskRuntime)
	}

	l.limaConf.Disk = config.Disk(conf.RootDisk).GiB()
	l.limaConf.AdditionalDisks = append(l.limaConf.AdditionalDisks, limaconfig.Disk{
		Name:   config.CurrentProfile().ID,
		Format: format,
		FSType: disk.FSType,
	})

	l.mountRuntimeDisk(conf, format)
	return nil
}

func (l *limaVM) useRuntimeDisk(conf config.Config) {
	if !limautil.HasDisk() {
		l.limaConf.Disk = config.Disk(conf.Disk).GiB()
		return
	}

View on GitHub (pinned to c3a5f9184d)

Solutions

  1. Run `colima delete --data` (or `colima delete` for the profile) to wipe the provisioned disk and state, then start again with the desired runtime: `colima start --runtime <runtime>`.
  2. If you need both runtimes, keep them on separate profiles: `colima start --profile docker --runtime docker` and `colima start --profile containerd --runtime containerd`.
  3. If the disk truly is fresh (new/verified creation) but stale state triggers the error, inspect/remove the profile's state file under ~/.colima/_lima/<profile> (or COLIMA_HOME) so DiskFormatted/DiskRuntime reset, then start again.
  4. Pin the runtime consistently in automation scripts/CI so the same profile is never started with two different runtimes.

Example fix

# before
colima start --runtime containerd   # profile previously started with docker -> error

# after
colima delete --data
colima start --runtime containerd
Defensive patterns

Strategy: validation

Validate before calling

// Before starting, check persisted runtime vs desired runtime
import "github.com/abiosoft/colima/store"

s, err := store.Load()
if err == nil && s.DiskFormatted && s.DiskRuntime != "" && s.DiskRuntime != desiredRuntime {
    log.Fatalf("disk provisioned for %s; run 'colima delete --data' or use profile per runtime", s.DiskRuntime)
}

Prevention

When it happens

Trigger: Starting a profile whose disk was already formatted (e.g. by a previous `colima start --runtime docker`) with a different runtime flag, e.g. `colima start --runtime containerd` on a profile whose store entry has DiskRuntime="docker". Also occurs when a runtime name changes between Colima versions or when a stale state file references a renamed runtime.

Common situations: Switching runtimes on an existing profile to test docker-vs-containerd; upgrading Colima versions where runtime identifiers changed; leftover state after experimenting with `colima start` flags; CI runners reusing a profile across jobs that pick different runtimes.

Related errors


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