hashicorp/nomad · error

plugin does not support creating volumes

Error message

plugin does not support creating volumes

What it means

Fires in CSIVolume.Create: the plugin has a controller but lacks the CREATE_DELETE_VOLUME capability, so it cannot create volumes dynamically; creation is unsupported by this plugin.

Source

Thrown at nomad/csi_endpoint.go:1182

		// Check if override is set and we do not have permissions
		if args.PolicyOverride {
			if !aclObj.AllowNsOp(vol.Namespace, acl.NamespaceCapabilitySentinelOverride) {
				return structs.ErrPermissionDenied
			}
		}

		if err = vol.Validate(); err != nil {
			return err
		}
		plugin, err := v.pluginValidateVolume(vol)
		if err != nil {
			return err
		}
		if !plugin.ControllerRequired {
			return fmt.Errorf("plugin has no controller")
		}
		if !plugin.HasControllerCapability(structs.CSIControllerSupportsCreateDelete) {
			return fmt.Errorf("plugin does not support creating volumes")
		}

		// if the volume already exists, we'll update it instead
		// current will be nil if it does not exist.
		current, err := snap.CSIVolumeByID(nil, vol.Namespace, vol.ID)
		if err != nil {
			return err
		}

		validatedVols = append(validatedVols,
			validated{vol, plugin, current})

		warn, err := v.enforceEnterprisePolicy(snap, vol, current, args.GetIdentity().GetACLToken(), args.PolicyOverride)
		if warn != nil {
			reply.Warnings = warn.Error()
		}

		if err != nil {

View on GitHub (pinned to 482b49bf1a)

Solutions

  1. Use a plugin that advertises CREATE_DELETE_VOLUME
  2. Pre-provision the volume in the storage system and register it statically instead
Defensive patterns

Strategy: validation

When it happens

Trigger: Thrown at nomad/csi_endpoint.go:1182 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/9e300dda51de5ac6. Report an issue: GitHub.