abiosoft/colima · warning

error starting %s: %w

Error message

error starting %s: %w

What it means

A per-process warning emitted while inspecting daemon status after a chain failure: for each daemon process whose Running flag is false (skipping the inotify process, which is handled separately), colima records the failure in ctx (daemon.CtxKey(p.Name) = false) and logs 'error starting <p.Name>'. Typically p.Name is a specific vmnet network (e.g. shared or a custom network), pinpointing which network daemon failed to run.

Source

Thrown at environment/vm/lima/daemon.go:131

				}

				status, ok := ctx.Value(statusKey).(daemon.Status)
				if !ok {
					return
				}
				if !status.Running {
					log.Warnln(fmt.Errorf("error starting network: %w", err))
					return
				}

				for _, p := range status.Processes {
					// TODO: handle inotify separate from network
					if p.Name == inotify.Name {
						continue
					}
					if !p.Running {
						ctx = context.WithValue(ctx, daemon.CtxKey(p.Name), false)
						log.Warnln(fmt.Errorf("error starting %s: %w", p.Name, err))
					}
				}
			}()
		}
	}

	// check if inotify is running
	if conf.MountINotify {
		if inotifyEnabled, _ := ctx.Value(ctxKeyInotify).(bool); !inotifyEnabled {
			log.Warnln("error occurred enabling inotify daemon")
		}
	}

	// preserve vmnet context
	if vmnetEnabled, _ := ctx.Value(ctxKeyVmnet).(bool); vmnetEnabled {
		// env var for subprocess to detect vmnet
		l.host = l.host.WithEnv(vmnet.SubProcessEnvVar + "=1")
	}

View on GitHub (pinned to c3a5f9184d)

Solutions

  1. Identify the failing network name from the message, then check its config: 'colima start --network-address --network name=...,interface=...' options or the networks: section in ~/.colima/_templates/lima/0.yaml / instance config; fix subnet/interface conflicts.
  2. Disconnect VPNs that conflict with the daemon network's subnet and retry 'colima start'.
  3. Restart to retry child spawn: 'colima stop -f && colima start'.
  4. If the named network is optional, remove it from the config to get a clean start, then re-add it correctly.
  5. Verify per-network status: 'colima network ls' / daemon status commands after start.
Defensive patterns

Strategy: type-guard

Validate before calling

// validate network names/subnets before start to avoid per-process failures
for _, n := range conf.Network.Networks {
    if n.Name == "" {
        return fmt.Errorf("network name required for custom networks")
    }
}

Type guard

func failedDaemonProcesses(s daemon.Status) []daemon.Process {
    var failed []daemon.Process
    for _, p := range s.Processes {
        if p.Name == inotify.Name {
            continue // handled separately
        }
        if !p.Running {
            failed = append(failed, p)
        }
    }
    return failed
}

Try / catch

for _, p := range status.Processes {
    if p.Name == inotify.Name || p.Running {
        continue
    }
    ctx = context.WithValue(ctx, daemon.CtxKey(p.Name), false)
    log.Warnln(fmt.Errorf("error starting %s: %w", p.Name, err))
}

Prevention

When it happens

Trigger: 'colima start --network-address' or with custom networks where the overall daemon runs but one child network process is down: one vmnet network's interface failed (name collision, vmnet entitlement for that network, subnet conflict with host VPN), or the child crashed while others started; the loop marks exactly the failed networks so later steps can skip them.

Common situations: Custom named networks in config whose subnets overlap corporate VPN ranges; one of several networks configured but the corresponding vmnet helper config missing; VPN clients grabbing the same 192.168.x range colima's network uses.

Related errors


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