{"record":{"id":"e288e90022445177","repo":"GoogleContainerTools/skaffold","slug":"invalid-output-type-q-must-be-plain-or-json","errorCode":null,"errorMessage":"invalid output type: %q. Must be \"plain\" or \"json\"","messagePattern":"invalid output type: %q\\. Must be \"plain\" or \"json\"","errorType":"validation","errorClass":null,"httpStatus":null,"severity":"error","filePath":"cmd/skaffold/app/cmd/schema/list.go","lineNumber":42,"sourceCode":"\n\t\"github.com/GoogleContainerTools/skaffold/v2/pkg/skaffold/schema\"\n)\n\nvar OutputType string\n\n// List prints to `out` all supported schema versions.\nfunc List(_ context.Context, out io.Writer) error {\n\treturn list(out, OutputType)\n}\n\nfunc list(out io.Writer, outputType string) error {\n\tswitch outputType {\n\tcase \"json\":\n\t\treturn printJSON(out)\n\tcase \"plain\":\n\t\treturn printPlain(out)\n\tdefault:\n\t\treturn fmt.Errorf(`invalid output type: %q. Must be \"plain\" or \"json\"`, outputType)\n\t}\n}\n\ntype schemaList struct {\n\tVersions []string `json:\"versions\"`\n}\n\nfunc printJSON(out io.Writer) error {\n\treturn json.NewEncoder(out).Encode(schemaList{\n\t\tVersions: versions(),\n\t})\n}\n\nfunc printPlain(out io.Writer) error {\n\tfor _, version := range versions() {\n\t\tfmt.Fprintln(out, version)\n\t}\n","sourceCodeStart":24,"sourceCodeEnd":60,"githubUrl":"https://github.com/GoogleContainerTools/skaffold/blob/a1189de023efc32d4b8e11f395acc678aa555011/cmd/skaffold/app/cmd/schema/list.go#L24-L60","documentation":"The `skaffold schema list` command supports exactly two `--output` formats: `plain` and `json`. Any other value passed to the output flag causes list() to return this error instead of rendering the schema version list. It is a strict input-validation guard on the output flag.","triggerScenarios":"Running `skaffold schema list --output yaml`, `--output table`, `--output ''`, or any misspelled value such as `--output Json` (matching is case-sensitive via the switch).","commonSituations":"Users familiar with other CLI tools (kubectl uses -o yaml/json) assume more formats exist; typos in scripts; shell variables expanding to an empty or wrong value.","solutions":["Use `--output json` or `--output plain` (lowercase, exact spelling).","Omit the --output flag if a default format is acceptable.","Check the flag value in your script/CI with `echo` before invoking skaffold."],"exampleFix":"// before\nskaffold schema list --output yaml\n// after\nskaffold schema list --output json","handlingStrategy":"validation","validationCode":"out := os.Getenv(\"SKAFFOLD_OUTPUT\")\nif out != \"\" && out != \"plain\" && out != \"json\" {\n    return fmt.Errorf(\"unsupported --output value %q; use \\\"plain\\\" or \\\"json\\\"\", out)\n}","typeGuard":"func validSchemaOutput(v string) bool { return v == \"plain\" || v == \"json\" }","tryCatchPattern":"if err := listCmd.Run(); err != nil {\n    if strings.Contains(err.Error(), \"invalid output type\") {\n        // fall back to default output\n    }\n}","preventionTips":["Only pass exactly \"plain\" or \"json\" (lowercase) to --output.","In scripts, whitelist the output value before invoking the CLI."],"tags":["cli","flag-validation","skaffold"],"backgroundTag":"invalid-flag-value","analyzedSha":"a1189de023efc32d4b8e11f395acc678aa555011","analyzedAt":"2026-09-05T12:09:27.064Z","contentChangedAt":"2026-09-05T12:09:27.064Z","schemaVersion":2},"datasetVersion":"2026-09-12T17:17:11.597Z"}