{"record":{"id":"243e617412093712","repo":"vitessio/vitess","slug":"all-not-supported-for-s-command","errorCode":null,"errorMessage":"'all' not supported for '%s' command","messagePattern":"'all' not supported for '(.+?)' command","errorType":"validation","errorClass":null,"httpStatus":null,"severity":"error","filePath":"go/vt/vtctl/vtctl.go","lineNumber":3005,"sourceCode":"\t// Accept inputs like so:\n\t//  \"launch\", \"all\"\n\t//  \"launch\", <uuid>\n\t//  \"launch-all\", <empty>\n\tif tokens := strings.Split(command, \"-\"); len(tokens) == 2 && tokens[1] == \"all\" {\n\t\t// command is e.g. \"launch-all\"\n\t\tif arg != \"\" {\n\t\t\treturn \"\", fmt.Errorf(\"UUID not allowed in '%s' command\", command)\n\t\t}\n\t\t// transform \"launch-all\" into \"launch\", \"all\"\n\t\tcommand = tokens[0]\n\t\targ = \"all\"\n\t}\n\tswitch arg {\n\tcase \"\":\n\t\treturn \"\", errors.New(\"UUID|all required\")\n\tcase \"all\":\n\t\tif !allSupported {\n\t\t\treturn \"\", fmt.Errorf(\"'all' not supported for '%s' command\", command)\n\t\t}\n\t\treturn fmt.Sprintf(`alter vitess_migration %s all`, command), nil\n\tdefault:\n\t\tquery := `alter vitess_migration %a ` + command\n\t\treturn sqlparser.ParseAndBind(query, sqltypes.StringBindVariable(arg))\n\t}\n}\n\nfunc commandOnlineDDL(ctx context.Context, wr *wrangler.Wrangler, subFlags *pflag.FlagSet, args []string) error {\n\tjson := subFlags.Bool(\"json\", false, \"Output JSON instead of human-readable table\")\n\torderBy := subFlags.String(\"order\", \"ascending\", \"Sort the results by `id` property of the Schema migration (default is ascending. Allowed values are `ascending` or `descending`.\")\n\tlimit := subFlags.Int64(\"limit\", 0, \"Limit number of rows returned in output\")\n\tskip := subFlags.Int64(\"skip\", 0, \"Skip specified number of rows returned in output\")\n\tif err := subFlags.Parse(args); err != nil {\n\t\treturn err\n\t}\n\tif subFlags.NArg() < 1 {\n\t\treturn errors.New(\"the <keyspace> argument is required for the OnlineDDL command\")","sourceCodeStart":2987,"sourceCodeEnd":3023,"githubUrl":"https://github.com/vitessio/vitess/blob/01a25a7d176f94613b8d59d799f438380a8760e4/go/vt/vtctl/vtctl.go#L2987-L3023","documentation":"The plain (non '-all') OnlineDDL command form requires a UUID argument, and 'all' is only accepted when the command was registered in the allSupported list. Passing 'all' to a command that does not support bulk operation is rejected. This complements error 1056 at the other boundary of generateOnlineDDLQuery.","triggerScenarios":"`vtctldclient workflow throttle all` where throttle-all is the correct form but the command did not enable allSupport; generic misuse of the keyword 'all' as a UUID.","commonSituations":"Assuming every OnlineDDL verb has an 'all' variant; using 'all' instead of the hyphenated '-all' command form.","solutions":["Use the explicit '-all' command form, e.g. `throttle-all` instead of `throttle all`","For a single migration, supply its UUID instead of 'all'","Check which verbs support bulk operations in the current vtctldclient version"],"exampleFix":"// before\nvtctldclient workflow retry all\n// after\nvtctldclient workflow retry-all\n// or\nvtctldclient workflow retry 82fa7e00_...","handlingStrategy":"validation","validationCode":"if arg == \"all\" && !strings.HasSuffix(command, \"-all\") {\n  // use the explicit hyphenated -all command instead\n}","typeGuard":null,"tryCatchPattern":null,"preventionTips":["Prefer the hyphenated '-all' command forms over passing the literal 'all' argument","Use real UUIDs from `workflow show` for single-migration operations"],"tags":["onlineddl","argument-validation","vtctl"],"backgroundTag":"conflicting-command-arguments","analyzedSha":"01a25a7d176f94613b8d59d799f438380a8760e4","analyzedAt":"2026-09-01T17:28:30.605Z","contentChangedAt":null,"schemaVersion":2},"datasetVersion":"2026-09-08T15:18:49.778Z"}