abiosoft/colima · warning
' %s' cannot be updated after initial setup, discarded
Error message
' %s' cannot be updated after initial setup, discarded
What it means
A warning (log.Warnln, not a failure) emitted by setFixedConfigs during `colima start`: settings fixed at instance creation — architecture, vmType, mountType, runtime, and network mode/address — are read back from the profile's state file and any new value is discarded in favor of the original. The format string has a cosmetic bug: a stray space inside the quotes ('%s ...') and it interpolates only the setting name, not the old/new values.
Source
Thrown at cmd/start.go:432
if conf.Hostname == "" {
conf.Hostname = config.CurrentProfile().ID
}
if conf.PortForwarder == "" {
conf.PortForwarder = "ssh"
}
}
func setFixedConfigs(conf *config.Config) {
fixedConf, err := configmanager.LoadFrom(config.CurrentProfile().StateFile())
if err != nil {
return
}
warnIfNotEqual := func(name, newVal, fixedVal string) {
if newVal != fixedVal {
log.Warnln(fmt.Errorf("'%s' cannot be updated after initial setup, discarded", name))
}
}
// override the fixed configs
// arch, vmType, mountType, runtime are fixed and cannot be changed
if fixedConf.Arch != "" {
warnIfNotEqual("architecture", conf.Arch, fixedConf.Arch)
conf.Arch = fixedConf.Arch
}
if fixedConf.VMType != "" {
warnIfNotEqual("virtual machine type", conf.VMType, fixedConf.VMType)
conf.VMType = fixedConf.VMType
}
if fixedConf.Runtime != "" {
warnIfNotEqual("runtime", conf.Runtime, fixedConf.Runtime)
conf.Runtime = fixedConf.Runtime
}
if fixedConf.MountType != "" {View on GitHub (pinned to c3a5f9184d)
Solutions
- Accept the warning if the original value is fine — startup proceeds with the fixed values
- To actually change a fixed setting, recreate the instance: `colima delete` (or `colima delete --force`) then `colima start` with the new flags
- Check what the instance was created with: `colima status` or inspect the state file under the profile's config dir
- If scripting, stop passing flags that conflict with the instance's fixed settings to keep logs clean
Example fix
# before $ colima start --vm-type vz # instance created as qemu WARN[0000] 'virtual machine type' cannot be updated after initial setup, discarded # after $ colima delete $ colima start --vm-type vz
Defensive patterns
Strategy: validation
Validate before calling
// Before start, detect fixed-setting drift the way setFixedConfigs does
fixed, err := configmanager.LoadFrom(config.CurrentProfile().StateFile())
if err == nil && fixed.VMType != "" && fixed.VMType != desired.VMType {
log.Warnf("vmType is fixed to %s; recreate with `colima delete` to change it", fixed.VMType)
} Prevention
- Treat architecture/vmType/mountType/runtime/network-mode as create-time only — script them once at instance creation
- Inspect `colima status` before passing conflicting flags in CI
- Recreate (delete + start) instead of fighting the discard warning
When it happens
Trigger: `colima start --arch aarch64` on an instance created as x86_64; `--vm-type vz` on a qemu instance; `--runtime docker` on a containerd instance; `--network-driver`/mode changes on an existing instance — each after initial creation.
Common situations: Trying to switch virtualization (qemu->vz) or architecture without recreating; scripted starts that always pass the full flag set after a config drift; users confused because the warning shows no values due to the message bug.
Related errors
- error retrieving ssh config: %w
- error persisting runtime settings: %w
- error persisting kubernetes settings: %w
- error retrieving runtimes: %w
- error deleting configs: %w
AI-assisted analysis of abiosoft/colima@c3a5f9184d (2026-08-15).
Data as JSON: /api/errors/d5ddd09bbae53c90.
Report an issue: GitHub.