vitessio/vitess · error
'all' not supported for '%s' command
Error message
'all' not supported for '%s' command
What it means
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.
Source
Thrown at go/vt/vtctl/vtctl.go:3005
// Accept inputs like so:
// "launch", "all"
// "launch", <uuid>
// "launch-all", <empty>
if tokens := strings.Split(command, "-"); len(tokens) == 2 && tokens[1] == "all" {
// command is e.g. "launch-all"
if arg != "" {
return "", fmt.Errorf("UUID not allowed in '%s' command", command)
}
// transform "launch-all" into "launch", "all"
command = tokens[0]
arg = "all"
}
switch arg {
case "":
return "", errors.New("UUID|all required")
case "all":
if !allSupported {
return "", fmt.Errorf("'all' not supported for '%s' command", command)
}
return fmt.Sprintf(`alter vitess_migration %s all`, command), nil
default:
query := `alter vitess_migration %a ` + command
return sqlparser.ParseAndBind(query, sqltypes.StringBindVariable(arg))
}
}
func commandOnlineDDL(ctx context.Context, wr *wrangler.Wrangler, subFlags *pflag.FlagSet, args []string) error {
json := subFlags.Bool("json", false, "Output JSON instead of human-readable table")
orderBy := subFlags.String("order", "ascending", "Sort the results by `id` property of the Schema migration (default is ascending. Allowed values are `ascending` or `descending`.")
limit := subFlags.Int64("limit", 0, "Limit number of rows returned in output")
skip := subFlags.Int64("skip", 0, "Skip specified number of rows returned in output")
if err := subFlags.Parse(args); err != nil {
return err
}
if subFlags.NArg() < 1 {
return errors.New("the <keyspace> argument is required for the OnlineDDL command")View on GitHub (pinned to 01a25a7d17)
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
Example fix
// before vtctldclient workflow retry all // after vtctldclient workflow retry-all // or vtctldclient workflow retry 82fa7e00_...
Defensive patterns
Strategy: validation
Validate before calling
if arg == "all" && !strings.HasSuffix(command, "-all") {
// use the explicit hyphenated -all command instead
} Prevention
- Prefer the hyphenated '-all' command forms over passing the literal 'all' argument
- Use real UUIDs from `workflow show` for single-migration operations
When it happens
Trigger: `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.
Common situations: Assuming every OnlineDDL verb has an 'all' variant; using 'all' instead of the hyphenated '-all' command form.
Related errors
- UUID not allowed in '%s' command
- Unknown OnlineDDL command: %s
- Error generating OnlineDDL query: %+v
- Foreign key found
- source and target columns must be of same length
AI-assisted analysis of vitessio/vitess@01a25a7d17 (2026-09-01).
Data as JSON: /api/errors/243e617412093712.
Report an issue: GitHub.