{"record":{"id":"3c390f46466a711a","repo":"hashicorp/nomad","slug":"could-not-find-job-version-d-for-region","errorCode":null,"errorMessage":"Could not find job version %d for region","messagePattern":"Could not find job version (.+?) for region","errorType":"console","errorClass":null,"httpStatus":null,"severity":"error","filePath":"command/deployment_status.go","lineNumber":643,"sourceCode":"\treturn results, nil\n}\n\nfunc fetchRegionDeployment(c *api.Client, d *api.Deployment, region *api.MultiregionRegion) (*api.Deployment, error) {\n\tif region == nil {\n\t\treturn nil, errors.New(\"Region not found\")\n\t}\n\n\topts := &api.QueryOptions{Region: region.Name}\n\tdeploys, _, err := c.Jobs().Deployments(d.JobID, false, opts)\n\tif err != nil {\n\t\treturn nil, fmt.Errorf(\"Error fetching deployments for job %s: %v\", d.JobID, err)\n\t}\n\tfor _, dep := range deploys {\n\t\tif dep.JobVersion == d.JobVersion {\n\t\t\treturn dep, nil\n\t\t}\n\t}\n\treturn nil, fmt.Errorf(\"Could not find job version %d for region\", d.JobVersion)\n}\n\nfunc formatMultiregionDeployment(regions map[string]*api.Deployment, uuidLength int) string {\n\trowString := \"Region|ID|Status\"\n\trows := make([]string, len(regions)+1)\n\trows[0] = rowString\n\ti := 1\n\tfor k, v := range regions {\n\t\trow := fmt.Sprintf(\"%s|%s|%s\", k, limit(v.ID, uuidLength), v.Status)\n\t\trows[i] = row\n\t\ti++\n\t}\n\tsort.Strings(rows)\n\treturn formatList(rows)\n}\n\nfunc formatDeploymentGroups(tgs map[string]*api.DeploymentState, uuidLength int) string {\n\t// Detect if we need to add these columns","sourceCodeStart":625,"sourceCodeEnd":661,"githubUrl":"https://github.com/hashicorp/nomad/blob/482b49bf1aec006f089bcfc7e632d8f6ac303e5e/command/deployment_status.go#L625-L661","documentation":"After successfully listing deployments for the job in a region, fetchRegionDeployment scans for one whose JobVersion equals the original deployment's version. If none matches, it returns \"Could not find job version %d for region\", meaning that region never deployed (or no longer records) this job version.","triggerScenarios":"fetchRegionDeployment (invoked from the per-region goroutine) finds the region's deployment list contains no entry with dep.JobVersion == d.JobVersion — e.g. the region's deployment for that version was GC'd or the region failed before its deployment was created.","commonSituations":"Multiregion jobs where one region failed early and never registered a deployment; old deployment records for that version were garbage-collected; job was updated so versions diverged between regions.","solutions":["Run `nomad job deployments -json <job>` per region to see which versions each region recorded","Check the failing region's deployment history; if GC removed it, use the full deployment list instead of the status command","Trigger a new deployment (`nomad job run`) if the region needs to catch up to the current version"],"exampleFix":"// before\nnomad deployment status <multiregion-deploy-id>  # Could not find job version 4 for region\n// after\nnomad job deployments -region=<region> <job-id>  # inspect recorded versions per region","handlingStrategy":"fallback","validationCode":"deps, _, err := c.Jobs().Deployments(jobID, false, &api.QueryOptions{Region: region})\n// check any dep.JobVersion == wantedVersion before relying on it\nhasVersion := false\nfor _, d := range deps { if d.JobVersion == wantedVersion { hasVersion = true } }","typeGuard":null,"tryCatchPattern":"dep, err := fetchRegionDeployment(c, region, d)\nif err != nil {\n    // fall back to listing all regional deployments for the job\n    return formatJobDeploymentsFallback(c, d.JobID, region.Name)\n}","preventionTips":["Check per-region deployment history after multiregion rollouts","Don't assume all regions recorded the same job version","Query job deployments list as a fallback view"],"tags":["multiregion","deployment","not-found"],"backgroundTag":"job-version-missing","analyzedSha":"482b49bf1aec006f089bcfc7e632d8f6ac303e5e","analyzedAt":"2026-09-04T07:54:14.808Z","contentChangedAt":"2026-09-04T07:54:14.808Z","schemaVersion":2},"datasetVersion":"2026-09-08T10:18:20.063Z"}