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

  1. Use the explicit '-all' command form, e.g. `throttle-all` instead of `throttle all`
  2. For a single migration, supply its UUID instead of 'all'
  3. 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

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


AI-assisted analysis of vitessio/vitess@01a25a7d17 (2026-09-01). Data as JSON: /api/errors/243e617412093712. Report an issue: GitHub.