{"record":{"id":"d00e3415195a1b2c","repo":"hashicorp/nomad","slug":"failed-to-find-storage-provider-info-for-client-q","errorCode":null,"errorMessage":"failed to find storage provider info for client %q, node plugin %q is not running or has not fingerprinted on this client","messagePattern":"failed to find storage provider info for client %q, node plugin %q is not running or has not fingerprinted on this client","errorType":"exception","errorClass":null,"httpStatus":null,"severity":"error","filePath":"nomad/csi_endpoint.go","lineNumber":1013,"sourceCode":"\t\t}\n\t}\n\n\t// fallback to looking up the node plugin\n\tws := memdb.NewWatchSet()\n\tstate := v.srv.fsm.State()\n\ttargetNode, err := state.NodeByID(ws, claim.NodeID)\n\tif err != nil {\n\t\treturn \"\", err\n\t}\n\tif targetNode == nil {\n\t\treturn \"\", fmt.Errorf(\"%w %s\", structs.ErrUnknownNode, claim.NodeID)\n\t}\n\n\t// get the storage provider's ID for the client node (not\n\t// Nomad's ID for the node)\n\ttargetCSIInfo, ok := targetNode.CSINodePlugins[vol.PluginID]\n\tif !ok || targetCSIInfo.NodeInfo == nil {\n\t\treturn \"\", fmt.Errorf(\"failed to find storage provider info for client %q, node plugin %q is not running or has not fingerprinted on this client\", targetNode.ID, vol.PluginID)\n\t}\n\treturn targetCSIInfo.NodeInfo.ID, nil\n}\n\nfunc (v *CSIVolume) checkpointClaim(vol *structs.CSIVolume, claim *structs.CSIVolumeClaim) error {\n\tv.logger.Trace(\"checkpointing claim\")\n\treq := structs.CSIVolumeClaimRequest{\n\t\tVolumeID:     vol.ID,\n\t\tAllocationID: claim.AllocationID,\n\t\tNodeID:       claim.NodeID,\n\t\tClaim:        claim.Mode,\n\t\tState:        claim.State,\n\t\tWriteRequest: structs.WriteRequest{\n\t\t\tNamespace: vol.Namespace,\n\t\t\tRegion:    v.srv.Region(),\n\t\t\tAuthToken: v.srv.getLeaderAcl(),\n\t\t},\n\t}","sourceCodeStart":995,"sourceCodeEnd":1031,"githubUrl":"https://github.com/hashicorp/nomad/blob/482b49bf1aec006f089bcfc7e632d8f6ac303e5e/nomad/csi_endpoint.go#L995-L1031","documentation":"Fires in lookupExternalNodeID when the claiming node exists but its CSINodePlugins map has no info for this plugin — the node plugin never fingerprinted or is not running on that client, so its storage-provider node ID is unknown.","triggerScenarios":"Thrown at nomad/csi_endpoint.go:1013 when the library encounters an invalid state.","commonSituations":"See trigger scenarios.","solutions":["Ensure the CSI node plugin block is present in the client's client config and the plugin binary is installed","Check client fingerprint logs for the plugin","Restart the node plugin / client so CSINodePlugins info is populated, then retry"],"exampleFix":null,"handlingStrategy":"retry","validationCode":null,"typeGuard":null,"tryCatchPattern":null,"preventionTips":[],"tags":[],"backgroundTag":null,"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"}