hashicorp/nomad · error

volume %q does not have MULTI_NODE volume capability: %v

Error message

volume %q does not have MULTI_NODE volume capability: %v

What it means

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.

Source

Thrown at plugins/csi/client.go:814

	err := req.Validate()
	if err != nil {
		return err
	}

	// NodeStageVolume's response contains no extra data. If err == nil, we were
	// successful.
	_, err = c.nodeClient.NodeStageVolume(ctx, req.ToCSIRepresentation(), opts...)
	if err != nil {
		code := status.Code(err)
		switch code {
		case codes.NotFound:
			err = fmt.Errorf("volume %q could not be found: %v", req.ExternalID, err)
		case codes.AlreadyExists:
			err = fmt.Errorf(
				"volume %q is already staged to %q but with incompatible capabilities for this request: %v",
				req.ExternalID, req.StagingTargetPath, err)
		case codes.FailedPrecondition:
			err = fmt.Errorf("volume %q does not have MULTI_NODE volume capability: %v",
				req.ExternalID, err)
		case codes.Internal:
			err = fmt.Errorf("node plugin returned an internal error, check the plugin allocation logs for more information: %v", err)
		}
	}

	return err
}

func (c *client) NodeUnstageVolume(ctx context.Context, volumeID string, stagingTargetPath string, opts ...grpc.CallOption) error {
	if err := c.ensureConnected(ctx); err != nil {
		return err
	}
	// These errors should not be returned during production use but exist as aids
	// during Nomad development
	if volumeID == "" {
		return fmt.Errorf("missing volumeID")
	}

View on GitHub (pinned to 482b49bf1a)

Solutions

  1. Remove the volume from a multi-node / shared usage pattern, or provision it with MULTI_NODE capabilities
  2. Check the storage provider's volume options to enable multi-node access
Defensive patterns

Strategy: validation

When it happens

Trigger: Thrown at plugins/csi/client.go:814 when the library encounters an invalid state.

Common situations: See trigger scenarios.


AI-assisted analysis of hashicorp/nomad@482b49bf1a (2026-09-04). Data as JSON: /api/errors/98e6908239ac442f. Report an issue: GitHub.