{"record":{"id":"a3cdd9923d612711","repo":"hashicorp/nomad","slug":"reconciliation-of-job-summaries-failed-v","errorCode":null,"errorMessage":"reconciliation of job summaries failed: %v","messagePattern":"reconciliation of job summaries failed: (.+?)","errorType":"exception","errorClass":null,"httpStatus":null,"severity":"error","filePath":"nomad/system_endpoint.go","lineNumber":77,"sourceCode":"\tauthErr := s.srv.Authenticate(s.ctx, args)\n\tif done, err := s.srv.forward(\"System.ReconcileJobSummaries\", args, args, reply); done {\n\t\treturn err\n\t}\n\ts.srv.MeasureRPCRate(\"system\", structs.RateMetricWrite, args)\n\tif authErr != nil {\n\t\treturn structs.ErrPermissionDenied\n\t}\n\n\t// Check management level permissions\n\tif aclObj, err := s.srv.ResolveACL(args); err != nil {\n\t\treturn err\n\t} else if !aclObj.IsManagement() {\n\t\treturn structs.ErrPermissionDenied\n\t}\n\n\t_, index, err := s.srv.raftApply(structs.ReconcileJobSummariesRequestType, args)\n\tif err != nil {\n\t\treturn fmt.Errorf(\"reconciliation of job summaries failed: %v\", err)\n\t}\n\treply.Index = index\n\treturn nil\n}\n","sourceCodeStart":59,"sourceCodeEnd":82,"githubUrl":"https://github.com/hashicorp/nomad/blob/482b49bf1aec006f089bcfc7e632d8f6ac303e5e/nomad/system_endpoint.go#L59-L82","documentation":"System.ReconcileJobSummaries applies a ReconcileJobSummariesRequest through Raft to rebuild job summary counters. Any error returned from the Raft apply step (loss of leader, no quorum, FSM apply failure) is wrapped in this message. It indicates the reconciliation transaction could not be committed.","triggerScenarios":"Calling nomad system reconcile-job-summaries (management ACL required) when raftApply returns an error, e.g. no cluster leader, lost quorum, or the FSM rejected the request.","commonSituations":"Running reconciliation during a leader election or after server failures; job summary inconsistency repair attempts on a degraded cluster; permission is fine (management) but the cluster cannot commit writes.","solutions":["Verify a stable leader exists (nomad server members / leader endpoint) and retry","Restore quorum by restarting or replacing failed server nodes","Check server logs for the underlying raftApply error","Retry reconciliation after the cluster converges; it is idempotent"],"exampleFix":"// before\nnomad system reconcile-job-summaries  // fails during leader election\n\n// after\nnomad operator api '/v1/status/leader'  # wait for a leader\nnomad system reconcile-job-summaries","handlingStrategy":"retry","validationCode":"leader, _ := client.Status().Leader(ctx)\nif leader == \"\" {\n    return errors.New(\"cannot reconcile job summaries without a leader\")\n}","typeGuard":null,"tryCatchPattern":"err := client.System().ReconcileJobSummaries();\nvar respErr *api.ResponseError\nif err != nil && strings.Contains(err.Error(), \"reconciliation of job summaries failed\") {\n    // verify leadership/quorum, retry after convergence\n}","preventionTips":["Run reconciliation only on stable clusters with a leader","Verify management ACL token before calling","Treat as idempotent and safe to retry"],"tags":["nomad","raft","job-summaries","leader-election"],"backgroundTag":"raft-no-leader","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"}