hashicorp/nomad · error
volume %q is already staged to %q but with incompatible capa
Error message
volume %q is already staged to %q but with incompatible capabilities for this request: %v
What it means
CSI client mapping in NodeStageVolume: the plugin returned gRPC AlreadyExists — the volume is already staged at the target path but with capabilities incompatible with this request (e.g. different access mode or mount flags).
Source
Thrown at plugins/csi/client.go:810
func (c *client) NodeStageVolume(ctx context.Context, req *NodeStageVolumeRequest, opts ...grpc.CallOption) error {
if err := c.ensureConnected(ctx); err != nil {
return err
}
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 aidsView on GitHub (pinned to 482b49bf1a)
Solutions
- Make all allocations staging this volume use compatible mount/access-mode capabilities
- Unstage the volume (or restart the node plugin) to clear the conflicting staged state
Defensive patterns
Strategy: validation
When it happens
Trigger: Thrown at plugins/csi/client.go:810 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/097cec969b60008d.
Report an issue: GitHub.