ahmetb/kubectx · error
failed to load: %w
Error message
failed to load: %w
What it means
The loader (DefaultLoader, honoring KUBECONFIG or ~/.kube/config) failed to load any files: missing files where at least one is required, permission errors, or unset HOME making the default path underivable. This is the entry guard of Kubeconfig.Parse.
Source
Thrown at internal/kubeconfig/kubeconfig.go:74
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()
if err != nil {
return fmt.Errorf("failed to load: %w", err)
}
k.files = make([]fileEntry, 0, len(rwcs))
for i, f := range rwcs {
var v yaml.Node
if err := yaml.NewDecoder(f).Decode(&v); err != nil {
// Close all file handles on failure to avoid leaks.
for _, rf := range rwcs {
rf.Close()
}
return fmt.Errorf("failed to decode file %d: %w", i, err)
}
rn := yaml.NewRNode(&v)
if rn.YNode().Kind != yaml.MappingNode {
for _, rf := range rwcs {
rf.Close()
}
return fmt.Errorf("kubeconfig file %d is not a map document", i)View on GitHub (pinned to 12ad6fb22e)
Solutions
- Ensure KUBECONFIG paths exist and are readable (or unset the variable)
- Set HOME to a valid directory so ~/.kube/config can be found
- Check file permissions on the kubeconfig files
Defensive patterns
Strategy: try-catch
When it happens
Trigger: Thrown at internal/kubeconfig/kubeconfig.go:74 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/03cceee98ad639a6.
Report an issue: GitHub.