{"record":{"id":"eb7fd572d32250fb","repo":"kubernetes/kops","slug":"unknown-output-format-q","errorCode":null,"errorMessage":"unknown output format: %q","messagePattern":"unknown output format: %q","errorType":"validation","errorClass":null,"httpStatus":null,"severity":"error","filePath":"cmd/kops/get_all.go","lineNumber":160,"sourceCode":"\t\terr = clusterOutputTable([]*api.Cluster{cluster}, out)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tfmt.Fprintf(out, \"\\nInstance Groups\\n\")\n\t\terr = igOutputTable(cluster, instancegroups, out)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif len(addonObjects) != 0 {\n\t\t\tfmt.Fprintf(out, \"\\nAddon Objects\\n\")\n\t\t\terr = addonsOutputTable(cluster, addonObjects, out)\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t}\n\n\tdefault:\n\t\treturn fmt.Errorf(\"unknown output format: %q\", options.Output)\n\t}\n\n\treturn nil\n}\n","sourceCodeStart":142,"sourceCodeEnd":165,"githubUrl":"https://github.com/kubernetes/kops/blob/4c8573c808a73d578c5eadc86d410646ea0b0d73/cmd/kops/get_all.go#L142-L165","documentation":"RunGetAll validates options.Output against the known formats (table, yaml, json) and returns this error for anything else in its default branch. Unlike get_assets, it does not restrict registration of the --output flag values, so an arbitrary value can reach this switch.","triggerScenarios":"`kops get all <cluster> -o <anything-other-than-table|yaml|json>`, e.g. `-o jsonpath=...` or `-o wide`, which kops get does not support; or a scripted value that is empty or misformatted.","commonSituations":"Copy-pasted kubectl invocations using jsonpath/wide/custom-columns output that kops does not implement; automation passing an empty or wrongly spelled -o value; mixed-version scripts built against a different tool's flags.","solutions":["Use only table, yaml, or json for -o/--output","For machine-readable output use -o yaml or -o json and post-process with yq/jq","Check the value passed by scripts/aliases for typos or empty strings"],"exampleFix":"// before\nkops get all mycluster.example.com -o jsonpath='{.items[*].metadata.name}'\n// after\nkops get all mycluster.example.com -o json | jq -r '.items[].metadata.name'","handlingStrategy":"validation","validationCode":"func validateOutput(o string) error {\n    switch o {\n    case \"table\", \"yaml\", \"json\":\n        return nil\n    default:\n        return fmt.Errorf(\"unknown output format %q; use table, yaml or json\", o)\n    }\n}\n// call before RunGetAll\nif err := validateOutput(options.Output); err != nil { return err }","typeGuard":"func validOutput(o string) bool {\n    return o == \"table\" || o == \"yaml\" || o == \"json\"\n}","tryCatchPattern":"err := RunGetAll(ctx, f, out, options)\nif err != nil && strings.HasPrefix(err.Error(), \"unknown output format\") {\n    fmt.Fprintln(os.Stderr, \"tip: only table, yaml, json are supported\")\n}","preventionTips":["Only pass table|yaml|json to -o; kubectl-only formats (jsonpath, wide) are unsupported","Validate -o values in wrapper scripts before invoking kops","Keep values lowercase — matching is case-sensitive"],"tags":["cli","flags","validation"],"backgroundTag":"invalid-output-format","analyzedSha":"4c8573c808a73d578c5eadc86d410646ea0b0d73","analyzedAt":"2026-09-05T04:13:19.212Z","contentChangedAt":"2026-09-05T04:13:19.212Z","schemaVersion":2},"datasetVersion":"2026-09-12T12:17:11.808Z"}