{"record":{"id":"0f6cddf7105566b9","repo":"hashicorp/nomad","slug":"core-scheduler-cannot-handle-job-s","errorCode":null,"errorMessage":"core scheduler cannot handle job '%s'","messagePattern":"core scheduler cannot handle job '(.+?)'","errorType":"exception","errorClass":null,"httpStatus":null,"severity":"error","filePath":"nomad/core_sched.go","lineNumber":89,"sourceCode":"\t\treturn c.deploymentGC(customThreshold)\n\tcase structs.CoreJobCSIVolumeClaimGC:\n\t\treturn c.csiVolumeClaimGC(eval, customThreshold)\n\tcase structs.CoreJobCSIPluginGC:\n\t\treturn c.csiPluginGC(eval, customThreshold)\n\tcase structs.CoreJobOneTimeTokenGC:\n\t\treturn c.expiredOneTimeTokenGC(eval)\n\tcase structs.CoreJobLocalTokenExpiredGC:\n\t\treturn c.expiredACLTokenGC(eval, false, customThreshold)\n\tcase structs.CoreJobGlobalTokenExpiredGC:\n\t\treturn c.expiredACLTokenGC(eval, true, customThreshold)\n\tcase structs.CoreJobRootKeyRotateOrGC:\n\t\treturn c.rootKeyRotateOrGC(eval)\n\tcase structs.CoreJobVariablesRekey:\n\t\treturn c.variablesRekey(eval)\n\tcase structs.CoreJobForceGC:\n\t\treturn c.forceGC(eval)\n\tdefault:\n\t\treturn fmt.Errorf(\"core scheduler cannot handle job '%s'\", eval.JobID)\n\t}\n}\n\n// forceGC is used to garbage collect all eligible objects.\nfunc (c *CoreScheduler) forceGC(eval *structs.Evaluation) error {\n\t// set a minimal threshold for all objects to make force GC possible\n\tforce := new(time.Millisecond)\n\n\tif err := c.jobGC(eval, force); err != nil {\n\t\treturn err\n\t}\n\tif err := c.evalGC(force); err != nil {\n\t\treturn err\n\t}\n\tif err := c.deploymentGC(force); err != nil {\n\t\treturn err\n\t}\n\tif err := c.csiPluginGC(eval, force); err != nil {","sourceCodeStart":71,"sourceCodeEnd":107,"githubUrl":"https://github.com/hashicorp/nomad/blob/482b49bf1aec006f089bcfc7e632d8f6ac303e5e/nomad/core_sched.go#L71-L107","documentation":"The core scheduler only implements a fixed set of core jobs (GC variants, root key rotation, variables rekey, etc.). Process returns this error when an evaluation carries a CoreJob JobID not in that switch. It is a programming/state-integrity guard: an unknown core job type reached the core scheduler, typically indicating an internal inconsistency or a newer core job type handled by a different version.","triggerScenarios":"An evaluation whose JobID encodes a core job type (structs.CoreJob* prefix) that the running server binary does not recognize — e.g. a core job created by a newer Nomad version, or corrupt/forged evaluation data with an unexpected JobID.","commonSituations":"Rolling cluster upgrade where an evaluation created by the new binary is processed by the old binary before restart; manually inserted or corrupted evaluation rows; custom tooling submitting evaluations that mimic core job naming.","solutions":["Complete the rolling upgrade of all servers so the binary matches the evaluation's core job type.","Check `nomad server members` versions are uniform; restart laggard servers.","Inspect the evaluation: `nomad eval status <eval-id>` to see which job ID triggered it.","If caused by custom tooling, stop submitting evaluations with reserved core job ID prefixes."],"exampleFix":"// before: mixed versions\nnomad server members  # 1.6.1, 1.6.1, 1.7.0\n// after: uniform upgrade\n# upgrade remaining servers to 1.7.0, then restart the core scheduler workload","handlingStrategy":"validation","validationCode":"// ensure version uniformity before scheduling sensitive operations\nmembers, _ := client.Agent().Members().ServerMembers\nversions := map[string]int{}\nfor _, m := range members { versions[m.Tags[\"build\"]]++ }\nif len(versions) > 1 { return errors.New(\"servers on mixed versions; upgrade first\") }","typeGuard":null,"tryCatchPattern":null,"preventionTips":["Upgrade all servers in one maintenance window; never run mixed-version for long.","Never submit evaluations whose JobID mimics core job prefixes.","Keep custom tooling away from the internal core-job evaluation path."],"tags":["scheduler","evaluations","nomad","version-skew"],"backgroundTag":"unsupported-core-job-type","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"}