cloudflare/cloudflared · warning

invalid --output value provided, please make sure it is one

Error message

invalid --output value provided, please make sure it is one of: default, json

What it means

`cloudflared tunnel tail` accepts --output limited to `default` or `json`. Run() switches on the flag value; for anything else it logs this error. Note the current implementation logs the error and continues with an empty output value rather than returning it, which can lead to unexpected downstream behavior.

Source

Thrown at cmd/cloudflared/tail/cmd.go:277

	}
}

// Run implements a foreground runner
func Run(c *cli.Context) error {
	log := cliutil.CreateStderrLogger(c)

	signals := make(chan os.Signal, 10)
	signal.Notify(signals, syscall.SIGTERM, syscall.SIGINT)
	defer signal.Stop(signals)

	output := "default"
	switch c.String("output") {
	case "default", "":
		output = "default"
	case "json":
		output = "json"
	default:
		log.Err(errors.New("invalid --output value provided, please make sure it is one of: default, json")).Send()
	}

	filters, err := parseFilters(c)
	if err != nil {
		log.Error().Err(err).Msgf("invalid filters provided")
		return nil
	}

	u, err := buildURL(c, log, cfapi.Logs)
	if err != nil {
		log.Err(err).Msg("unable to construct management request URL")
		return nil
	}

	header := make(http.Header)
	header.Add("User-Agent", buildInfo.UserAgent())
	trace := c.String("trace")
	if trace != "" {

View on GitHub (pinned to 2253eeeb25)

Solutions

  1. Use `--output default` or `--output json` exactly (lowercase).
  2. Omit --output entirely to get the default format.
  3. Check for typos like `JSON`, `ndjson`, or `pretty` and correct them.

Example fix

# before
cloudflared tunnel tail <id> --output pretty
# after
cloudflared tunnel tail <id> --output json
Defensive patterns

Strategy: validation

Validate before calling

case "$OUTPUT" in
  ""|default|json) ;;
  *) echo "--output must be 'default' or 'json'"; exit 2 ;;
esac

Try / catch

out, err := runTail(ctx, id, output)
if err != nil {
    if strings.Contains(err.Error(), "invalid --output") {
        return runTail(ctx, id, "default") // retry with safe default
    }
    return err
}

Prevention

When it happens

Trigger: `cloudflared tunnel tail <id> --output pretty` (or yaml, text, etc.) — any --output value other than default, empty string, or json.

Common situations: Users assuming yaml/pretty formats are supported like other CLIs; copy-pasted commands from docs using --output=json (with equals is fine) or --output JSON in wrong case (case-sensitive switch).

Understand the failure class

Background: "unknown output mode", "invalid value for flag", "expects true/false": fixing invalid flag value errors in CLI tools — this error's family across 24 libraries.

Related errors


AI-assisted analysis of cloudflare/cloudflared@2253eeeb25 (2026-09-06). Data as JSON: /api/errors/f04f59024ff152e4. Report an issue: GitHub.