{"record":{"id":"73ff70dc9ebba168","repo":"vitessio/vitess","slug":"can-only-s-a-specific-vdiff-please-provide-a-val","errorCode":null,"errorMessage":"can only %s a specific vdiff, please provide a valid UUID; view all with: VDiff -- %s.%s show all","messagePattern":"can only (.+?) a specific vdiff, please provide a valid UUID; view all with: VDiff -- (.+?)\\.(.+?) show all","errorType":"validation","errorClass":null,"httpStatus":null,"severity":"error","filePath":"go/vt/vtctl/vdiff2.go","lineNumber":155,"sourceCode":"\t\t} else {\n\t\t\tvdiffUUID, err = uuid.NewUUID()\n\t\t}\n\t\tif err != nil {\n\t\t\treturn fmt.Errorf(\"%v, please provide a valid UUID\", err)\n\t\t}\n\tcase vdiff.ShowAction:\n\t\tswitch actionArg {\n\t\tcase vdiff.AllActionArg, vdiff.LastActionArg:\n\t\tdefault:\n\t\t\tvdiffUUID, err = uuid.Parse(actionArg)\n\t\t\tif err != nil {\n\t\t\t\treturn fmt.Errorf(\"can only show a specific vdiff, please provide a valid UUID; view all with: VDiff -- %s.%s show all\", keyspace, workflowName)\n\t\t\t}\n\t\t}\n\tcase vdiff.StopAction, vdiff.ResumeAction:\n\t\tvdiffUUID, err = uuid.Parse(actionArg)\n\t\tif err != nil {\n\t\t\treturn fmt.Errorf(\"can only %s a specific vdiff, please provide a valid UUID; view all with: VDiff -- %s.%s show all\", action, keyspace, workflowName)\n\t\t}\n\tcase vdiff.DeleteAction:\n\t\tswitch actionArg {\n\t\tcase vdiff.AllActionArg:\n\t\tdefault:\n\t\t\tvdiffUUID, err = uuid.Parse(actionArg)\n\t\t\tif err != nil {\n\t\t\t\treturn fmt.Errorf(\"can only delete a specific vdiff, please provide a valid UUID; view all with: VDiff -- %s.%s show all\", keyspace, workflowName)\n\t\t\t}\n\t\t}\n\tdefault:\n\t\treturn fmt.Errorf(\"invalid action '%s'; %s\", action, usage)\n\t}\n\n\toutput, err := wr.VDiff2(ctx, keyspace, workflowName, action, actionArg, vdiffUUID.String(), options)\n\tif err != nil {\n\t\tlog.Error(fmt.Sprintf(\"vdiff2 returning with error: %v\", err))\n\t\treturn err","sourceCodeStart":137,"sourceCodeEnd":173,"githubUrl":"https://github.com/vitessio/vitess/blob/01a25a7d176f94613b8d59d799f438380a8760e4/go/vt/vtctl/vdiff2.go#L137-L173","documentation":"For the `stop` and `resume` VDiff actions, commandVDiff2 requires the argument to be a specific, valid vdiff UUID. If uuid.Parse fails on the actionArg, it returns this formatted error (the action name is interpolated) pointing the user at `show all` to find UUIDs.","triggerScenarios":"Running `VDiff -- <keyspace>.<workflow> stop <arg>` or `resume <arg>` where <arg> is not a valid UUID — e.g. passing `all`, `last`, a table name, or a malformed UUID.","commonSituations":"Assuming stop/resume accept `all`/`last` like the show action does (they don't); using a vdiff name from another tool; truncated UUIDs pasted from terminal output.","solutions":["Get the exact UUID with `VDiff -- <keyspace>.<workflow> show all`.","Pass the full valid UUID to the stop/resume action.","Do not use `all`/`last` with stop or resume — only `show` supports them.","Re-check shell quoting so the UUID arrives as a single argument."],"exampleFix":"// before\nVDiff -- commerce.move.tables stop last\n// after\nVDiff -- commerce.move.tables show all\nVDiff -- commerce.move.tables stop bd2f3e5a-1234-5678-9abc-def012345678","handlingStrategy":"validation","validationCode":"const uuidRe = /^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$/i\nif (!uuidRe.test(arg.trim())) {\n  throw new Error(`stop/resume require a full vdiff UUID, got: ${arg}`)\n}","typeGuard":"function isVDiffUUID(s) {\n  return /^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$/i.test(s)\n}","tryCatchPattern":"try {\n  runVDiff(`-- ${ks}.${wf} stop ${uuid}`)\n} catch (e) {\n  if (String(e).includes(\"provide a valid UUID\")) {\n    const list = runVDiff(`-- ${ks}.${wf} show all`)\n    console.error(`Unknown UUID ${uuid}; available: ${list}`)\n  } else throw e\n}","preventionTips":["Remember stop/resume only accept exact UUIDs — never `all` or `last`.","Fetch the UUID programmatically from `show all` output before stopping/resuming.","Trim copied UUIDs to strip whitespace and shell artifacts."],"tags":["cli","vdiff","uuid-validation","vreplication"],"backgroundTag":"invalid-uuid-argument","analyzedSha":"01a25a7d176f94613b8d59d799f438380a8760e4","analyzedAt":"2026-09-01T17:28:30.605Z","contentChangedAt":null,"schemaVersion":2},"datasetVersion":"2026-09-08T10:18:20.063Z"}