{"record":{"id":"c137decbcf3c2107","repo":"vitessio/vitess","slug":"getcellsaliases-command-takes-no-parameter","errorCode":null,"errorMessage":"GetCellsAliases command takes no parameter","messagePattern":"GetCellsAliases command takes no parameter","errorType":"validation","errorClass":null,"httpStatus":null,"severity":"error","filePath":"go/vt/vtctl/cells_aliases.go","lineNumber":132,"sourceCode":"\t\treturn err\n\t}\n\tif subFlags.NArg() != 1 {\n\t\treturn errors.New(\"the <alias> argument is required for the DeleteCellsAlias command\")\n\t}\n\talias := subFlags.Arg(0)\n\n\t_, err := wr.VtctldServer().DeleteCellsAlias(ctx, &vtctldatapb.DeleteCellsAliasRequest{\n\t\tName: alias,\n\t})\n\treturn err\n}\n\nfunc commandGetCellsAliases(ctx context.Context, wr *wrangler.Wrangler, subFlags *pflag.FlagSet, args []string) error {\n\tif err := subFlags.Parse(args); err != nil {\n\t\treturn err\n\t}\n\tif subFlags.NArg() != 0 {\n\t\treturn errors.New(\"GetCellsAliases command takes no parameter\")\n\t}\n\taliases, err := wr.TopoServer().GetCellsAliases(ctx, true /*strongRead*/)\n\tif err != nil {\n\t\treturn err\n\t}\n\treturn printJSON(wr.Logger(), aliases)\n}\n","sourceCodeStart":114,"sourceCodeEnd":140,"githubUrl":"https://github.com/vitessio/vitess/blob/01a25a7d176f94613b8d59d799f438380a8760e4/go/vt/vtctl/cells_aliases.go#L114-L140","documentation":"Returned by the GetCellsAliases vtctl command when the caller supplies arguments. GetCellsAliases lists all cells aliases and takes no parameters; any argument indicates a client-side usage mistake.","triggerScenarios":"Running `vtctldclient GetCellsAliases <alias>` — any positional token triggers the error.","commonSituations":"Confusing GetCellsAliases with DeleteCellsAlias/UpdateCellsAlias (which take an <alias> argument) and passing one; leftover arguments in shell pipelines.","solutions":["Re-run with no positional arguments: `vtctldclient GetCellsAliases`","To inspect a single alias's membership, parse the JSON output of GetCellsAliases instead"],"exampleFix":"// before\nvtctldclient GetCellsAliases dcalias\n// after\nvtctldclient GetCellsAliases","handlingStrategy":"validation","validationCode":"args := flagSet.Args()\nif len(args) != 0 {\n    return errors.New(\"GetCellsAliases command takes no parameter\")\n}","typeGuard":"func takesNoArgs(args []string) bool { return len(args) == 0 }","tryCatchPattern":"if err := commandGetCellsAliases(ctx, wr, subFlags, args); err != nil {\n    if strings.Contains(err.Error(), \"takes no parameter\") {\n        log.Printf(\"usage: GetCellsAliases (no arguments)\")\n    }\n    return err\n}","preventionTips":["Do not pass an alias to GetCellsAliases — it lists all aliases","Parse the JSON output to inspect a specific alias"],"tags":["cli","argument-validation","topology","cells-alias"],"backgroundTag":"unexpected-argument","analyzedSha":"01a25a7d176f94613b8d59d799f438380a8760e4","analyzedAt":"2026-09-01T17:28:30.605Z","contentChangedAt":null,"schemaVersion":2},"datasetVersion":"2026-09-08T10:18:20.063Z"}