thanos-io/thanos · error

error parsing commandline arguments

Error message

error parsing commandline arguments: %v

What it means

App.Parse prints usage and exits the process with status 2 when kingpin cannot parse os.Args — unknown flags, bad values, or missing required arguments. It is not a runtime error; it terminates the program.

Solutions

  1. Fix the command-line arguments per the printed usage.
  2. Check systemd/unit/service definitions for typos in flags.
  3. Use --help to list valid flags.
Defensive patterns

Strategy: validation

When it happens

Trigger: Thrown at pkg/extkingpin/app.go:61 when the library encounters an invalid state.

Common situations: See trigger scenarios.


AI-assisted analysis of thanos-io/thanos@35b8b99117 (2026-09-07). Data as JSON: /api/errors/fa51678dc5d8c36f. Report an issue: GitHub.

Appendix: source

Thrown at pkg/extkingpin/app.go:61

	app.HelpFlag.Short('h')
	app.UsageFuncs(template.FuncMap{
		"alphabeticalSort": func(data []*kingpin.FlagModel) []*kingpin.FlagModel {
			sort.Slice(data, func(i, j int) bool { return data[i].Name < data[j].Name })
			return data
		},
	})
	return &App{
		app:        app,
		FlagClause: app,
		setups:     map[string]SetupFunc{},
	}
}

func (a *App) Parse() (cmd string, setup SetupFunc) {
	cmd, err := a.app.Parse(os.Args[1:])
	if err != nil {
		a.app.Usage(os.Args[1:])
		fmt.Fprintln(os.Stderr, errors.Wrapf(err, "error parsing commandline arguments: %v", os.Args))
		os.Exit(2)
	}
	return cmd, a.setups[cmd]
}

func (a *App) Command(cmd, help string) AppClause {
	c := a.app.Command(cmd, help)
	return &appClause{
		c:          c,
		FlagClause: c,
		setups:     a.setups,
		prefix:     cmd,
	}
}

type appClause struct {
	c *kingpin.CmdClause

View on GitHub (pinned to 35b8b99117)