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
- Use `--output default` or `--output json` exactly (lowercase).
- Omit --output entirely to get the default format.
- 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
- Whitelist flag values in wrapper scripts before invoking cloudflared.
- Note the value is case-sensitive: use lowercase `json`.
- Consult `cloudflared tunnel tail --help` for accepted values instead of guessing formats.
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.