{"record":{"id":"86951b55e36585a5","repo":"hashicorp/nomad","slug":"region-not-found","errorCode":null,"errorMessage":"Region not found","messagePattern":"Region not found","errorType":"exception","errorClass":null,"httpStatus":null,"severity":"error","filePath":"command/deployment_status.go","lineNumber":630,"sourceCode":"\t\t\trequests <- regionResult{d: d, err: err, region: region.Name}\n\t\t}(i)\n\t}\n\tfor i := 0; i < cap(requests); i++ {\n\t\tres := <-requests\n\t\tif res.err != nil {\n\t\t\tkey := fmt.Sprintf(\"%s (error)\", res.region)\n\t\t\tresults[key] = &api.Deployment{}\n\t\t\tcontinue\n\t\t}\n\t\tresults[res.region] = res.d\n\n\t}\n\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)","sourceCodeStart":612,"sourceCodeEnd":648,"githubUrl":"https://github.com/hashicorp/nomad/blob/482b49bf1aec006f089bcfc7e632d8f6ac303e5e/command/deployment_status.go#L612-L648","documentation":"`nomad deployment status` for a multiregion job resolves each region's deployment by fetching deployments for the job in that region. fetchRegionDeployment returns this error when the region record passed in is nil, i.e. the expected region entry is missing from the multiregion block.","triggerScenarios":"Running `nomad deployment status <id>` on a multiregion deployment whose region list is incomplete/corrupt, so a nil region pointer is handed to fetchRegionDeployment.","commonSituations":"Multiregion jobs whose region was removed or renamed after submission, partial cluster state replication, or jobs submitted before a region came online.","solutions":["Verify all regions in the job's multiregion block exist: `nomad server members` / check region configuration.","Resubmit or correct the job spec so each listed region is a registered, reachable Nomad region.","Inspect the deployment with `nomad deployment list` in each target region to confirm state; contact support if state appears corrupt."],"exampleFix":"// before\n// job multiregion references region \"eu\" but no servers run in region eu\n// after\n// either add servers with region = \"eu\" or remove/update the region in the job multiregion block, then redeploy","handlingStrategy":"validation","validationCode":"dep, _, err := client.Deployments().Info(deployID, nil)\nif err != nil || dep.JobCreateIndex == 0 { return err }\nif dep.JobMultiregion != nil {\n    for _, r := range dep.JobMultiregion.Regions {\n        if r == nil || r.Name == \"\" { return errors.New(\"missing region in multiregion job\") }\n    }\n}","typeGuard":"func regionIsValid(r *api.MultiregionRegion) bool { return r != nil && r.Name != \"\" }","tryCatchPattern":"if err := deploymentStatus(); err != nil && strings.Contains(err.Error(), \"Region not found\") {\n    // verify multiregion job spec and region servers before retry\n}","preventionTips":["Keep all regions listed in a job's multiregion block actually running servers.","Avoid renaming/removing regions referenced by active multiregion deployments.","Audit multiregion job specs with `nomad job inspect` after infra changes."],"tags":["multiregion","deployment","cli","nil-region"],"backgroundTag":"region-not-found","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"}