ahmetb/kubectx · error
context "%s" not found, can't rename it
Error message
context "%s" not found, can't rename it
What it means
Validation guard: the rename source context name (op.Old, possibly resolved from current-context when '.' was given) does not exist in any kubeconfig file. This is a user-input error, not an I/O failure; the lookup succeeded and returned not-found.
Source
Thrown at cmd/kubectx/rename.go:68
defer kc.Close()
if err := kc.Parse(); err != nil {
return fmt.Errorf("kubeconfig error: %w", err)
}
cur, err := kc.GetCurrentContext()
if err != nil {
return fmt.Errorf("failed to get current context: %w", err)
}
if op.Old == "." {
op.Old = cur
}
oldExists, err := kc.ContextExists(op.Old)
if err != nil {
return fmt.Errorf("failed to check context: %w", err)
}
if !oldExists {
return fmt.Errorf("context \"%s\" not found, can't rename it", op.Old)
}
newExists, err := kc.ContextExists(op.New)
if err != nil {
return fmt.Errorf("failed to check context: %w", err)
}
if newExists {
printer.Warning(stderr, "context \"%s\" exists, overwriting it.", op.New)
if err := kc.DeleteContextEntry(op.New); err != nil {
return fmt.Errorf("failed to delete new context to overwrite it: %w", err)
}
}
if err := kc.ModifyContextName(op.Old, op.New); err != nil {
return fmt.Errorf("failed to change context name: %w", err)
}
if op.Old == cur {
if err := kc.ModifyCurrentContext(op.New); err != nil {View on GitHub (pinned to 12ad6fb22e)
Solutions
- Run kubectx or kubectl config get-contexts to list valid context names
- Check for typos, wrong cluster prefix, or stale names in shell history/scripts
- If '.' was used, verify current-context is set — the resolved old name may be empty
Defensive patterns
Strategy: validation
When it happens
Trigger: Thrown at cmd/kubectx/rename.go:68 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/4dbc14e43f165cf7.
Report an issue: GitHub.