abiosoft/colima · warning

error at '%s': %w

Error message

error at '%s': %w

What it means

Emitted by ActiveCommandChain.Exec (cli/chain.go:134) for non-fatal errors: when a chain step returns an error wrapped in errNonFatal (created via cli.ErrNonFatal) and a stage label was previously set with Stage()/Stagef(), the error is logged as a warning 'error at \'<lastStage>\': <cause>' and the chain continues. It is diagnostics output, not a failure.

Source

Thrown at cli/chain.go:134

			if f.s != "" {
				a.log.Println(f.s, "...")
				a.lastStage = f.s
			}
			continue
		}

		// success
		err := f.f()
		if err == nil {
			continue
		}

		// warning
		if _, ok := err.(errNonFatal); ok {
			if a.lastStage == "" {
				a.log.Warnln(err)
			} else {
				a.log.Warnln(fmt.Errorf("error at '%s': %w", a.lastStage, err))
			}
			continue
		}

		// error
		if a.lastStage == "" {
			return err
		}
		return fmt.Errorf("error at '%s': %w", a.lastStage, err)
	}
	return nil
}

// Retry retries `f` up to `count` times at interval.
// If after `count` attempts there is an error, the command chain is terminated with the final error.
// retryCount starts from 1.
func (a *ActiveCommandChain) Retry(stage string, interval time.Duration, count int, f func(retryCount int) error) {
	a.Add(func() (err error) {

View on GitHub (pinned to c3a5f9184d)

Solutions

  1. Read the cause after the colon — the chain continued, so it is safe to ignore unless the warned feature misbehaves
  2. Re-run with `colima start -v` (or -vv) for debug context around the named stage
  3. If the warned feature matters, run the equivalent explicit subcommand (e.g. `colima start -p <profile> --<flag>`) to surface the problem as a hard error
Defensive patterns

Strategy: try-catch

Type guard

// Best-effort guard: the non-fatal marker type is unexported in cli,
// so detect the wrapper's behaviour — chain continues and warns.
func isChainWarning(logLine string) bool {
    return strings.HasPrefix(logLine, "error at '") && !strings.HasSuffix(logLine, "chain terminated")
}

Try / catch

err := chain.Exec() // warnings were already logged, Exec returned nil
// Non-fatal steps never reach here as errors; when embedding colima,
// wrap your own optional steps with cli.ErrNonFatal so they degrade to warnings:
chain.Add(func() error {
    if err := optionalStep(); err != nil {
        return cli.ErrNonFatal(err) // logged as "error at '<stage>': ...", chain continues
    }
    return nil
})

Prevention

When it happens

Trigger: Any command-chain function whose error is wrapped with cli.ErrNonFatal fails after at least one Stage() marker — typically optional provisioning/configuration steps during `colima start`/`colima stop` that colima deliberately treats as best-effort.

Common situations: Warnings during start such as optional network tweaks, rootless/rootful adjustments, or non-critical dependency steps failing; users see the warning line in `colima start` output but the command completes.

Related errors


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