portainer/portainer · error

unable to get persistent volume claim %s/%s. Error: %w

Error message

unable to get persistent volume claim %s/%s. Error: %w

What it means

Error "unable to get persistent volume claim %s/%s. Error: %w" thrown in portainer/portainer.

Source

Thrown at api/kubernetes/cli/persistent_volume_claims.go:39

	if kcl.GetIsKubeAdmin() {
		return kcl.fetchPersistentVolumeClaims(namespace)
	}

	return kcl.fetchPersistentVolumeClaimsForNonAdmin(namespace)
}

// GetPersistentVolumeClaim returns a single PVC by namespace and name.
func (kcl *KubeClient) GetPersistentVolumeClaim(namespace, name string) (*models.K8sPersistentVolumeClaim, error) {
	if !kcl.GetIsKubeAdmin() {
		allowedNamespaces := kcl.buildNonAdminNamespacesMap()
		if _, ok := allowedNamespaces[namespace]; !ok {
			return nil, fmt.Errorf("access to namespace %s is not authorized: %w", namespace, ErrUnauthorized)
		}
	}

	pvc, err := kcl.cli.CoreV1().PersistentVolumeClaims(namespace).Get(context.Background(), name, metav1.GetOptions{})
	if err != nil {
		return nil, fmt.Errorf("unable to get persistent volume claim %s/%s. Error: %w", namespace, name, err)
	}

	result := parsePersistentVolumeClaimDetail(pvc)
	return &result, nil
}

// CreatePersistentVolumeClaim creates a PVC in the given namespace. The access mode
// defaults to ReadWriteOnce and an empty storage class leaves the choice to the cluster
// default.
func (kcl *KubeClient) CreatePersistentVolumeClaim(namespace string, request models.K8sPersistentVolumeClaimCreateRequest) (*models.K8sPersistentVolumeClaim, error) {
	storage, err := resource.ParseQuantity(request.Storage)
	if err != nil {
		return nil, fmt.Errorf("invalid storage size %q. Error: %w", request.Storage, err)
	}

	accessModes := request.AccessModes
	if len(accessModes) == 0 {
		accessModes = []corev1.PersistentVolumeAccessMode{corev1.ReadWriteOnce}

View on GitHub (pinned to 17e74456ff)

When it happens

Trigger: Thrown at api/kubernetes/cli/persistent_volume_claims.go:39 when the library encounters an invalid state.

Common situations: See trigger scenarios.


AI-assisted analysis of portainer/portainer@17e74456ff (2026-08-26). Data as JSON: /api/errors/6927dfcfbe2b0fe9. Report an issue: GitHub.