{"record":{"id":"98e6908239ac442f","repo":"hashicorp/nomad","slug":"volume-q-does-not-have-multi-node-volume-capabili","errorCode":null,"errorMessage":"volume %q does not have MULTI_NODE volume capability: %v","messagePattern":"volume %q does not have MULTI_NODE volume capability: (.+?)","errorType":"exception","errorClass":null,"httpStatus":null,"severity":"error","filePath":"plugins/csi/client.go","lineNumber":814,"sourceCode":"\terr := req.Validate()\n\tif err != nil {\n\t\treturn err\n\t}\n\n\t// NodeStageVolume's response contains no extra data. If err == nil, we were\n\t// successful.\n\t_, err = c.nodeClient.NodeStageVolume(ctx, req.ToCSIRepresentation(), opts...)\n\tif err != nil {\n\t\tcode := status.Code(err)\n\t\tswitch code {\n\t\tcase codes.NotFound:\n\t\t\terr = fmt.Errorf(\"volume %q could not be found: %v\", req.ExternalID, err)\n\t\tcase codes.AlreadyExists:\n\t\t\terr = fmt.Errorf(\n\t\t\t\t\"volume %q is already staged to %q but with incompatible capabilities for this request: %v\",\n\t\t\t\treq.ExternalID, req.StagingTargetPath, err)\n\t\tcase codes.FailedPrecondition:\n\t\t\terr = fmt.Errorf(\"volume %q does not have MULTI_NODE volume capability: %v\",\n\t\t\t\treq.ExternalID, err)\n\t\tcase codes.Internal:\n\t\t\terr = fmt.Errorf(\"node plugin returned an internal error, check the plugin allocation logs for more information: %v\", err)\n\t\t}\n\t}\n\n\treturn err\n}\n\nfunc (c *client) NodeUnstageVolume(ctx context.Context, volumeID string, stagingTargetPath string, opts ...grpc.CallOption) error {\n\tif err := c.ensureConnected(ctx); err != nil {\n\t\treturn err\n\t}\n\t// These errors should not be returned during production use but exist as aids\n\t// during Nomad development\n\tif volumeID == \"\" {\n\t\treturn fmt.Errorf(\"missing volumeID\")\n\t}","sourceCodeStart":796,"sourceCodeEnd":832,"githubUrl":"https://github.com/hashicorp/nomad/blob/482b49bf1aec006f089bcfc7e632d8f6ac303e5e/plugins/csi/client.go#L796-L832","documentation":"Returned by the CSI client's NodeStageVolume when the node plugin answers FailedPrecondition because the volume lacks the MULTI_NODE volume capability required for the staging request. The volume cannot be staged as requested.","triggerScenarios":"Thrown at plugins/csi/client.go:814 when the library encounters an invalid state.","commonSituations":"See trigger scenarios.","solutions":["Remove the volume from a multi-node / shared usage pattern, or provision it with MULTI_NODE capabilities","Check the storage provider's volume options to enable multi-node access"],"exampleFix":null,"handlingStrategy":"validation","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"}