ahmetb/kubectx · warning

too many arguments

Error message

too many arguments

What it means

parseArgs returns UnsupportedOp with the fixed message "too many arguments" when argv contains more positional arguments than any supported invocation form allows. kubens accepts at most a namespace name plus one -f/--force flag; anything beyond that is rejected before any operation runs.

Source

Thrown at cmd/kubens/flags.go:78

	} else if n == 2 {
		// {namespace} -f|--force
		name := argv[0]
		force := slices.Contains([]string{"-f", "--force"}, argv[1])

		if !force {
			if !slices.Contains([]string{"-f", "--force"}, argv[0]) {
				return UnsupportedOp{Err: fmt.Errorf("unsupported arguments %q", argv)}
			}

			// -f|--force {namespace}
			force = true
			name = argv[1]
		}

		return getSwitchOp(name, force)
	}

	return UnsupportedOp{Err: fmt.Errorf("too many arguments")}
}

func getSwitchOp(v string, force bool) Op {
	if strings.HasPrefix(v, "-") && v != "-" {
		return UnsupportedOp{Err: fmt.Errorf("unsupported option %q", v)}
	}
	return SwitchOp{Target: v, Force: force}
}

View on GitHub (pinned to 12ad6fb22e)

Solutions

  1. Pass exactly one namespace: `kubens <namespace>`
  2. Quote arguments containing spaces: `kubens "my ns"`
  3. Review the invoking script/habit for stray extra arguments
  4. Use -f/--force only alongside a single namespace name

Example fix

// before
kubens my-ns extra-arg
// after
kubens "my-ns"        # one quoted namespace only
Defensive patterns

Strategy: validation

Validate before calling

args := os.Args[1:]
if len(args) > 2 {
    return errors.New("usage: kubens [-f] <namespace>")
}

Try / catch

op := kubens.ParseArgs(argv)
if uo, ok := op.(kubens.UnsupportedOp); ok {
    fmt.Fprintf(stderr, "usage: kubens [-f] <namespace>\n")
    os.Exit(2)
}

Prevention

When it happens

Trigger: Running e.g. `kubens ns1 ns2`, `kubens -f ns1 extra`, or any 3+ argument invocation.

Common situations: Unquoted namespace names with spaces expanding into multiple args; scripts appending defaults; users attempting `kubens ns --namespace=other` style multi-value commands.

Related errors


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