abiosoft/colima · info

setup cancelled

Error message

setup cancelled

What it means

ramalamaRunner.EnsureProvisioned asks the user to consent to the one-time ramalama setup via cli.Prompt; declining (answering no, or EOF on a closed stdin) returns this error. It is a deliberate cancellation sentinel, not a malfunction — a constant message with no %w wrapping.

Source

Thrown at model/runner.go:331

}

func (r *ramalamaRunner) DisplayName() string {
	return "Ramalama"
}

func (r *ramalamaRunner) ValidatePrerequisites(a app.App) error {
	return validateCommonPrerequisites(a)
}

func (r *ramalamaRunner) EnsureProvisioned() error {
	s, _ := store.Load()
	if s.RamalamaProvisioned {
		return nil
	}

	prompt := fmt.Sprintf("%s requires initial setup (this may take a few minutes depending on internet connection speed). Continue", r.DisplayName())
	if !cli.Prompt(prompt) {
		return fmt.Errorf("setup cancelled")
	}

	separator := "────────────────────────────────────────"
	header := fmt.Sprintf("Colima - %s Setup\n%s", r.DisplayName(), separator)

	return terminal.WithAltScreen(ProvisionRamalama, header)
}

func (r *ramalamaRunner) BuildArgs(args []string) ([]string, error) {
	return r.buildRamalamaArgs(args), nil
}

// EnsureModel ensures a ramalama model is available, pulling if necessary.
func (r *ramalamaRunner) EnsureModel(modelName string) (string, error) {
	if err := EnsureRamalamaModel(modelName); err != nil {
		return "", err
	}
	return modelName, nil

View on GitHub (pinned to c3a5f9184d)

Solutions

  1. Re-run the command interactively and accept the prompt to proceed with setup
  2. In automation, pre-provision the runner once in an interactive session, or feed an affirmative answer to stdin
  3. Treat the error as a graceful cancel (exit quietly) rather than a failure when scripting around it

Example fix

// before
return fmt.Errorf("setup cancelled")

// after (constant error; also silences govet's non-constant format string check)
return errors.New("setup cancelled")
Defensive patterns

Strategy: try-catch

Try / catch

if err := runner.EnsureProvisioned(); err != nil {
	if err.Error() == "setup cancelled" {
		// user declined: exit 0 quietly instead of printing an error
		fmt.Fprintln(os.Stderr, "setup declined; aborting")
		os.Exit(0)
	}
	return err
}

Prevention

When it happens

Trigger: Answering 'n' to the '<runner> requires initial setup ... Continue' prompt, or running from a non-interactive context (pipe, CI) where the prompt reads EOF and is treated as refusal.

Common situations: CI jobs or scripts invoking colima model for the first time with stdin redirected; users backing out when warned setup takes minutes.

Related errors


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