ahmetb/kubectx · error

no kubeconfig files loaded

Error message

no kubeconfig files loaded

What it means

Package-level sentinel error (errNoFiles) returned by Kubeconfig mutation methods like ModifyCurrentContext and UnsetCurrentContext when k.files is empty — i.e. Parse()/Load() never populated any kubeconfig file entries. Writing current-context is impossible because no file is open.

Source

Thrown at internal/kubeconfig/kubeconfig.go:54

	Path() string
}

type Loader interface {
	Load() ([]ReadWriteResetCloser, error)
}

type fileEntry struct {
	f      ReadWriteResetCloser
	path   string
	config *yaml.RNode
}

type Kubeconfig struct {
	loader Loader
	files  []fileEntry
}

var errNoFiles = errors.New("no kubeconfig files loaded")

func (k *Kubeconfig) WithLoader(l Loader) *Kubeconfig {
	k.loader = l
	return k
}

func (k *Kubeconfig) Close() error {
	var firstErr error
	for _, fe := range k.files {
		if err := fe.f.Close(); err != nil && firstErr == nil {
			firstErr = err
		}
	}
	return firstErr
}

func (k *Kubeconfig) Parse() error {
	rwcs, err := k.loader.Load()

View on GitHub (pinned to 12ad6fb22e)

Solutions

  1. Ensure Parse() is called after WithLoader before mutating the Kubeconfig
  2. Check that the loader found a kubeconfig file (KUBECONFIG env var or ~/.kube/config)
Defensive patterns

Strategy: validation

When it happens

Trigger: Thrown at internal/kubeconfig/kubeconfig.go:54 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/66d9c02d13f24d90. Report an issue: GitHub.