ahmetb/kubectx · error

no contexts found in config

Error message

no contexts found in config

What it means

Guard error in InteractiveDeleteOp.Run: ContextNames() returned an empty slice, so the kubeconfig has no contexts to present in the interactive fzf delete menu. The command aborts rather than opening an empty picker.

Source

Thrown at cmd/kubectx/fzf.go:110

		return err
	}
	// parse kubeconfig just to see if it can be loaded
	kc := new(kubeconfig.Kubeconfig).WithLoader(kubeconfig.DefaultLoader)
	defer kc.Close()
	if err := kc.Parse(); err != nil {
		if cmdutil.IsNotFoundErr(err) {
			printer.Warning(stderr, "kubeconfig file not found")
			return nil
		}
		return fmt.Errorf("kubeconfig error: %w", err)
	}

	ctxNames, err := kc.ContextNames()
	if err != nil {
		return fmt.Errorf("failed to get context names: %w", err)
	}
	if len(ctxNames) == 0 {
		return errors.New("no contexts found in config")
	}

	var in bytes.Buffer
	if err := formatContextList(kc, &in); err != nil {
		return err
	}

	cmd := exec.Command("fzf", "--ansi", "--no-preview")
	var out bytes.Buffer
	cmd.Stdin = &in
	cmd.Stderr = stderr
	cmd.Stdout = &out

	cmd.Env = append(os.Environ(),
		fmt.Sprintf("%s=1", env.EnvForceColor))
	if err := cmd.Run(); err != nil {
		var exitErr *exec.ExitError
		if !errors.As(err, &exitErr) {

View on GitHub (pinned to 12ad6fb22e)

Solutions

  1. Create or import contexts into the kubeconfig before deleting
  2. Verify KUBECONFIG env var points to the intended file
Defensive patterns

Strategy: validation

When it happens

Trigger: Thrown at cmd/kubectx/fzf.go:110 when the library encounters an invalid state.

Common situations: See trigger scenarios.


AI-assisted analysis of ahmetb/kubectx@12ad6fb22e (2026-09-02). Data as JSON: /api/errors/aff02465bc2926a6. Report an issue: GitHub.