Skip to main content
Version: 2.11

View Detailed Restore Failures from the Backup Location

For large resource-based restores, detailed resource information is not retained in the restore object or displayed in the Portworx Backup UI. In case of a partial restore, Portworx Backup stores a copy of the Restore Custom Resource (restore CR) as a JSON file in the backup location. You can review this file to identify per-resource status and failure reasons.

note
  • A partial restore status indicates that one or more resources failed during the restore process. It does not indicate that resources were skipped or retained due to user-defined retain policies.
  • To verify whether a non-large backup is treated as a large resource-based restore, check the Stork logs for the following message:
    Stripping all the resource info from restore cr as it is a large resource based restore.
    You can also verify this by checking the corresponding flag in the restore object.

Restore CR File Storage Location

Depending on the backup location type, the restore CR file is stored in:

  • S3:

    <bucket-name>/restore-crs/<restore-cr-name>-<shortUID>.json

  • NFS:

    <export-path>/<sub-path>/restore-crs/<restore-cr-name>-<shortUID>.json

    In NFS locations, <sub-path> refers to the optionally configured subdirectory within the export path.

    important

    The restore CR file is deleted after you delete the corresponding restore object using the Portworx Backup UI or CLI. For object lock–enabled backup locations, the restore CR file is deleted automatically after the retention period expires.

Identifying Failed Resources in Large Restores

To identify the failed resources, follow these steps:

  1. Open the restore CR JSON file and locate the following section:

    status.resources[]

    Each resource entry includes a status and reason field:

    • If status is Successful, the resource was restored successfully.

    • If status is Failed, review the reason field to identify the exact error.

  2. Check for the following reason string for the "status": "Failed".

    "Error applying resource: STUB: simulated failure for resource test-secret9 as configured in stubResourcesToFail"

    The Error applying resource indicates the resouce failed to restore in a large resource restore.

Sample Restore CR JSON

This is a sample JSON file for documentation purpose only to show the success and failed resources.

{
"metadata": {
"name": "n2-85d1556",
"namespace": "kube-system",
"uid": "898XXXXX-abcd-cbcd-8b16-f03a59c0b77f",
"resourceVersion": "329877",
"generation": 6,
"creationTimestamp": "2026-01-28T03:58:59Z",
"labels": {
"app.kubernetes.io/part-of": "px-backup"
},
"annotations": {
"portworx.io/cluster-name": "local-clu",
"portworx.io/cluster-uid": "fceXXXXX-abcd-abcd-b3fb-ed972fdXXXXXX",
"portworx.io/created-by": "px-backup",
"portworx.io/last-update": "2026-01-28T03:58:59.055573928Z",
"portworx.io/org-id": "default",
"portworx.io/restore-name": "n2",
"portworx.io/restore-uid": "85d1XXXXX-abcd-abcd-86ff-72f3e397d430"
},
"finalizers": [
"stork.libopenstorage.org/finalizer-cleanup"
],
"managedFields": [
{
"manager": "px-backup",
"operation": "Update",
"apiVersion": "stork.libopenstorage.org/v1alpha1",
"time": "2026-01-28T03:58:59Z",
"fieldsType": "FieldsV1",
"fieldsV1": {
"f:metadata": {
"f:annotations": {
".": {},
"f:portworx.io/cluster-name": {},
"f:portworx.io/cluster-uid": {},
"f:portworx.io/created-by": {},
"f:portworx.io/last-update": {},
"f:portworx.io/org-id": {},
"f:portworx.io/restore-name": {},
"f:portworx.io/restore-uid": {}
},
"f:labels": {
".": {},
"f:app.kubernetes.io/part-of": {}
}
},
"f:spec": {
".": {},
"f:backupLocation": {},
"f:backupName": {},
"f:backupObjectType": {},
"f:filter": {
".": {},
"f:namespaceFilter": {
".": {},
"f:includeNamespaces": {}
}
},
"f:includeOptionalResourceTypes": {},
"f:includeResources": {},
"f:isSFR": {},
"f:keepCrStatus": {},
"f:namespaceMapping": {
".": {},
"f:cm-ns": {},
"f:secret-ns": {}
},
"f:rancherProjectMapping": {},
"f:replacePolicy": {},
"f:storageClassMapping": {},
"f:virtualMachineFiles": {},
"f:virtualMachineName": {},
"f:vmRestoreOptions": {
".": {},
"f:skipMacMasking": {},
"f:skipVmRestart": {}
}
},
"f:status": {
".": {},
"f:finishTimestamp": {},
"f:largeResourceEnabled": {},
"f:resourceCount": {},
"f:resourcerestorestate": {},
"f:resources": {},
"f:restoredresourceCount": {},
"f:singleFileRestoreStatus": {
".": {},
"f:failedFiles": {},
"f:files": {},
"f:finishTimestamp": {},
"f:lastUpdateTimestamp": {},
"f:reason": {},
"f:status": {},
"f:totalFiles": {}
},
"f:totalSize": {}
}
}
},
{
"manager": "stork",
"operation": "Update",
"apiVersion": "stork.libopenstorage.org/v1alpha1",
"time": "2026-01-28T03:59:29Z",
"fieldsType": "FieldsV1",
"fieldsV1": {
"f:metadata": {
"f:finalizers": {
".": {},
"v:\"stork.libopenstorage.org/finalizer-cleanup\"": {}
}
},
"f:status": {
"f:lastUpdateTimestamp": {},
"f:reason": {},
"f:stage": {},
"f:status": {},
"f:volumes": {}
}
}
}
]
},
"spec": {
"backupName": "bkp-cm-secret-nfs-85d1556",
"backupLocation": "test-nfs-bl-85d1556",
"namespaceMapping": {
"cm-ns": "n2-cm",
"secret-ns": "n2-secret"
},
"replacePolicy": "Delete",
"includeOptionalResourceTypes": null,
"includeResources": null,
"storageClassMapping": null,
"rancherProjectMapping": null,
"backupObjectType": "All",
"keepCrStatus": false,
"vmRestoreOptions": {
"skipMacMasking": false,
"skipVmRestart": false
},
"filter": {
"namespaceFilter": {
"includeNamespaces": [
"cm-ns",
"secret-ns"
]
}
},
"isSFR": false,
"virtualMachineName": "",
"virtualMachineFiles": null
},
"status": {
"stage": "Applications",
"status": "InProgress",
"reason": "Application resources restore is in progress",
"resources": [
{
"name": "test86",
"namespace": "n2-cm",
"group": "",
"version": "v1",
"kind": "ConfigMap",
"status": "Successful",
"reason": "Resource restored successfully"
},
{
"name": "test87",
"namespace": "n2-cm",
"group": "",
"version": "v1",
"kind": "ConfigMap",
"status": "Successful",
"reason": "Resource restored successfully"
},
{
"name": "test88",
"namespace": "n2-cm",
"group": "",
"version": "v1",
"kind": "ConfigMap",
"status": "Successful",
"reason": "Resource restored successfully"
},
{
"name": "test89",
"namespace": "n2-cm",
"group": "",
"version": "v1",
"kind": "ConfigMap",
"status": "Failed",
"reason": "Error applying resource: STUB: simulated failure for resource test89 as configured in stubResourcesToFail"
},
{
"name": "test-secret30",
"namespace": "n2-secret",
"group": "",
"version": "v1",
"kind": "Secret",
"status": "Failed",
"reason": "Error applying resource: STUB: simulated failure for resource test-secret30 as configured in stubResourcesToFail"
},
{
"name": "test-secret9",
"namespace": "n2-secret",
"group": "",
"version": "v1",
"kind": "Secret",
"status": "Failed",
"reason": "Error applying resource: STUB: simulated failure for resource test-secret9 as configured in stubResourcesToFail"
}
],
"volumes": [],
"finishTimestamp": null,
"lastUpdateTimestamp": "2026-01-28T03:59:29Z",
"totalSize": 0,
"resourceCount": 0,
"largeResourceEnabled": false,
"restoredresourceCount": 0,
"resourcerestorestate": "",
"singleFileRestoreStatus": {
"status": "",
"reason": "",
"files": null,
"finishTimestamp": null,
"lastUpdateTimestamp": null,
"totalFiles": 0,
"failedFiles": 0
}
}
}

Metadata Fields

FieldDescriptionExample
metadata.nameName of the restore custom resourcen2-85d1556
metadata.namespaceKubernetes namespace where the restore CR existskube-system
metadata.uidUnique identifier assigned by Kubernetes to the restore object898XXXXX-abcd-cbcd-8b16-f03a59c0b77f
metadata.res VersionInternal Kubernetes version used for object change tracking329877
metadata.generationNumber of times the desired spec has changed6
metadata.creationTimestampTimestamp when the restore CR was created2026-01-28T03:58:59Z
metadata.labelsLabels associated with the restore CRapp.kubernetes.io/part-of: px-backup
metadata.annotationsAdditional metadata used by Portworx Backup for restore contextCluster name, restore name, organization ID

Restore Specification Fields

FieldDescriptionExample
spec.backupNameName of the backup used for the restorebkp-cm-secret-nfs-85d1556
spec.backupLocationBackup location from which the restore is performedtest-nfs-bl-85d1556
spec.namespaceMappingMapping of source namespaces to destination namespacescm-ns → n2-cm, secret-ns → n2-secret
spec.replacePolicyDefines how existing resources are handled during restoreDelete
spec.includeOptionalResourceTypesOptional resource types included in restorenull
spec.includeResourcesSpecific resources selected for restorenull
spec.storageClassMappingMapping of source storage classes to destination storage classesnull
spec.rancherProjectMappingRancher project mapping used during restorenull
spec.backupObjectTypeType of backup object being restoredAll
spec.keepCrStatusIndicates whether restore CR status should be retainedfalse
spec.filter.namespaceFilter.includeNamespacesNamespaces selected for restorecm-ns, secret-ns
spec.vmRestoreOptions.skipMacMaskingSkips MAC address masking during VM restorefalse
spec.vmRestoreOptions.skipVmRestartSkips VM restart after restorefalse
spec.virtualMachineNameName of VM being restored if VM restore is used""
spec.virtualMachineFilesFile paths used for VM file-level restorenull
spec.isSFRIndicates whether this is a single-file restore operationfalse

Restore Status Fields

FieldDescriptionExample
status.stageCurrent stage of the restore processApplications
status.statusOverall restore statusInProgress
status.reasonDescription of current restore stateApplication resources restore is in progress
status.lastUpdateTimestampTimestamp of the most recent status update2026-01-28T03:59:29Z
status.finishTimestampTimestamp when restore completednull
status.resourceCountTotal number of resources processed0
status.restoredresourceCountNumber of resources successfully restored0
status.totalSizeTotal size of restored resources0
status.largeResourceEnabledIndicates whether the restore was treated as a large resource restorefalse

Individual Resource Restore Status (status.resources[]) Fields

FieldDescriptionExample
nameName of the Kubernetes resourcetest89
namespaceNamespace of the resourcen2-cm
groupAPI group of the resource""
versionAPI version of the resourcev1
kindKubernetes resource typeConfigMap
statusRestore status of the resourceSuccessful / Failed
reasonDetailed result or error message for the restore operationResource restored successfully

Single File Restore Status Fields

FieldDescriptionExample
status.singleFileRestoreStatus.statusStatus of file-level restore operation""
status.singleFileRestoreStatus.reasonReason for success or failure""
status.singleFileRestoreStatus.totalFilesNumber of files processed in restore0
status.singleFileRestoreStatus.failedFilesNumber of files that failed during restore0