{"record":{"id":"1a1929f2293f49df","repo":"hashicorp/nomad","slug":"unknown-fingerprint-s","errorCode":null,"errorMessage":"unknown fingerprint '%s'","messagePattern":"unknown fingerprint '(.+?)'","errorType":"exception","errorClass":null,"httpStatus":null,"severity":"error","filePath":"client/fingerprint/fingerprint.go","lineNumber":86,"sourceCode":"\tfor k := range hostFingerprinters {\n\t\tfingerprints = append(fingerprints, k)\n\t}\n\tsort.Strings(fingerprints)\n\tfor k := range envFingerprinters {\n\t\tfingerprints = append(fingerprints, k)\n\t}\n\treturn fingerprints\n}\n\n// NewFingerprint is used to instantiate and return a new fingerprint\n// given the name and a logger\nfunc NewFingerprint(name string, logger log.Logger) (Fingerprint, error) {\n\t// Lookup the factory function\n\tfactory, ok := hostFingerprinters[name]\n\tif !ok {\n\t\tfactory, ok = envFingerprinters[name]\n\t\tif !ok {\n\t\t\treturn nil, fmt.Errorf(\"unknown fingerprint '%s'\", name)\n\t\t}\n\t}\n\n\t// Instantiate the fingerprint\n\tf := factory(logger)\n\treturn f, nil\n}\n\n// Factory is used to instantiate a new Fingerprint\ntype Factory func(log.Logger) Fingerprint\n\n// HealthCheck is used for doing periodic health checks. On a given time\n// interfal, a health check will be called by the fingerprint manager of the\n// node.\ntype HealthCheck interface {\n\t// Check is used to update properties of the node on the status of the health\n\t// check\n\tHealthCheck(*cstructs.HealthCheckRequest, *cstructs.HealthCheckResponse) error","sourceCodeStart":68,"sourceCodeEnd":104,"githubUrl":"https://github.com/hashicorp/nomad/blob/482b49bf1aec006f089bcfc7e632d8f6ac303e5e/client/fingerprint/fingerprint.go#L68-L104","documentation":"NewFingerprint looks up a fingerprint factory by name in the hostFingerprinters and envFingerprinters maps. If the configured name matches neither, it returns this error. This happens when a fingerprint name in the client config's options (\"fingerprint.allowlist\"/\"denylist\" or the deprecated fingerprint list) is not a known builtin.","triggerScenarios":"Client config lists a fingerprint name that doesn't exist (typo, removed fingerprint, custom name, wrong casing) during setupFingerprinters at client startup.","commonSituations":"Typo like \"env_aws\" vs actual name \"aws\"; fingerprint renamed across Nomad versions (e.g. old names removed); copy-pasted config from a different Nomad version; hand-written allowlists.","solutions":["Check the fingerprint name against the builtins (host: arch, cpu, memory, disk, storage, network, consul, vault, nomad, cni, etc.; env: aws, gce, azure, digitalocean)","Fix the typo or remove the unknown entry from the allowlist/denylist in client config","Match the names to your Nomad version's documentation (names changed across releases)","Verify only the short names are used (e.g. \"consul\", not \"consul_fingerprint\")"],"exampleFix":"// before\nclient {\n  options {\n    \"fingerprint.allowlist\" = \"aws,env_aws\" // env_aws is not a valid name\n  }\n}\n// after\nclient {\n  options {\n    \"fingerprint.allowlist\" = \"aws,consul\"\n  }\n}","handlingStrategy":"validation","validationCode":"var knownFingerprints = map[string]bool{\"arch\":true,\"cpu\":true,\"memory\":true,\"disk\":true,\"storage\":true,\"network\":true,\"cni\":true,\"consul\":true,\"vault\":true,\"nomad\":true,\"aws\":true,\"gce\":true,\"azure\":true,\"digitalocean\":true}\nfor _, name := range configuredFingerprints {\n    if !knownFingerprints[name] { return fmt.Errorf(\"unknown fingerprint %q\", name) }\n}","typeGuard":null,"tryCatchPattern":null,"preventionTips":["Validate fingerprint names against your Nomad version's docs before deploy","Keep allowlists short and generated from the documented list","Diff fingerprint names when upgrading Nomad across major versions","Test agent config startup in staging before production rollout"],"tags":["fingerprint","configuration","typo"],"backgroundTag":"unknown-fingerprint-name","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"}