vitessio/vitess · error
no response received for vdiff show of %s.%s(%s)
Error message
no response received for vdiff show of %s.%s(%s)
What it means
displayVDiff2ShowResponse expects the vtctld to return at least one VDiff response entry for a show request over a specific UUID. An empty Responses slice means no tablet/current vdiff record answered, so this error is returned naming the keyspace, workflow, and UUID.
Source
Thrown at go/vt/vtctl/vdiff2.go:353
if format == "json" {
wr.Logger().Printf("{}\n")
} else {
wr.Logger().Printf("No previous vdiff found for %s.%s\n", keyspace, workflowName)
}
return nil
}
break
}
fallthrough
default:
if vdiffUUID == uuid.Nil { // then it must be passed as the action arg
vdiffUUID, err = uuid.Parse(actionArg)
if err != nil {
return err
}
}
if len(output.Responses) == 0 {
return fmt.Errorf("no response received for vdiff show of %s.%s(%s)", keyspace, workflowName, vdiffUUID.String())
}
_, err := displayVDiff2ShowSingleSummary(wr, format, keyspace, workflowName, vdiffUUID.String(), output, verbose)
return err
}
}
func displayVDiff2ShowRecent(wr *wrangler.Wrangler, format, keyspace, workflowName, subCommand string, output *wrangler.VDiffOutput) error {
str := ""
recent, err := buildVDiff2Recent(output)
if err != nil {
return err
}
if format == "json" {
jsonText, err := json.MarshalIndent(recent, "", "\t")
if err != nil {
return err
}
str = string(jsonText)View on GitHub (pinned to 01a25a7d17)
Solutions
- Run `VDiff -- <ks>.<wf> show all` to confirm which UUIDs actually exist.
- Check tablets for the workflow are up and serving (vtctld can reach them).
- Verify the workflow exists: check vreplication streams for keyspace/workflow.
- Retry after vtctld/topology connectivity is restored.
Example fix
// before VDiff -- commerce.move.tables show bd2f3e5a-... // already deleted // after VDiff -- commerce.move.tables show all VDiff -- commerce.move.tables show <uuid from the list>
Defensive patterns
Strategy: try-catch
Validate before calling
const all = runVDiff(`-- ${ks}.${wf} show all`)
if (!all.includes(uuid)) {
throw new Error(`UUID ${uuid} not present for ${ks}.${wf}; skip show`)
} Type guard
null
Try / catch
try {
out = runVDiff(`-- ${ks}.${wf} show ${uuid}`)
} catch (e) {
if (String(e).includes("no response received")) {
console.error("No vdiff data returned; verify workflow is active and tablets are reachable")
out = runVDiff(`-- ${ks}.${wf} show all`)
} else throw e
} Prevention
- Confirm the workflow/vdiff still exists before showing a specific UUID.
- Check tablet health and vtctld connectivity before querying vdiff state.
- Treat empty show output as 'vdiff record gone' and fall back to `show all`.
When it happens
Trigger: `VDiff -- <ks>.<wf> show <uuid>` (or show all) where the aggregation produced zero responses — e.g. the vdiff record is gone, the workflow has no tablets responding, or the UUID exists nowhere in the shard data.
Common situations: Showing a UUID after it was already deleted; vtctld able to reach no tablets (shard/tablet down); running show against a workflow whose vdiff never actually started; stale topology cache.
Related errors
- GetWorkflows(keyspace = %s, active_only = %v) failed: %w
- can only show a specific vdiff, please provide a valid UUID;
- can only %s a specific vdiff, please provide a valid UUID; v
- can only delete a specific vdiff, please provide a valid UUI
- invalid action %s; %s
AI-assisted analysis of vitessio/vitess@01a25a7d17 (2026-09-01).
Data as JSON: /api/errors/b9603481501c94ab.
Report an issue: GitHub.