diff --git a/pkg/controllers/report/background/controller.go b/pkg/controllers/report/background/controller.go
index 92893e5f7d..29a712d21b 100644
--- a/pkg/controllers/report/background/controller.go
+++ b/pkg/controllers/report/background/controller.go
@@ -198,7 +198,7 @@ func (c *controller) fetchPolicies(logger logr.Logger, namespace string) ([]kyve
 
 func (c *controller) updateReport(ctx context.Context, meta metav1.Object, gvk schema.GroupVersionKind, resource resource.Resource) error {
 	namespace := meta.GetNamespace()
-	labels := meta.GetLabels()
+	metaLabels := meta.GetLabels()
 	// load all policies
 	policies, err := c.fetchClusterPolicies(logger)
 	if err != nil {
@@ -260,7 +260,7 @@ func (c *controller) updateReport(ctx context.Context, meta metav1.Object, gvk s
 			expected[reportutils.PolicyLabel(policy)] = policy
 		}
 		toDelete := map[string]string{}
-		for label := range labels {
+		for label := range metaLabels {
 			if reportutils.IsPolicyLabel(label) {
 				// if the policy doesn't exist anymore
 				if expected[label] == nil {
@@ -275,7 +275,7 @@ func (c *controller) updateReport(ctx context.Context, meta metav1.Object, gvk s
 		var toCreate []kyvernov1.PolicyInterface
 		for label, policy := range expected {
 			// if the background policy changed, we need to recreate entries
-			if labels[label] != policy.GetResourceVersion() {
+			if metaLabels[label] != policy.GetResourceVersion() {
 				if name, err := reportutils.PolicyNameFromLabel(namespace, label); err != nil {
 					return err
 				} else {
@@ -294,8 +294,11 @@ func (c *controller) updateReport(ctx context.Context, meta metav1.Object, gvk s
 		report := reportutils.DeepCopy(before)
 		var ruleResults []policyreportv1alpha2.PolicyReportResult
 		// deletions
-		for _, label := range toDelete {
-			delete(labels, label)
+		reportLabels := report.GetLabels()
+		if reportLabels != nil {
+			for _, label := range toDelete {
+				delete(reportLabels, label)
+			}
 		}
 		for _, result := range report.GetResults() {
 			if _, ok := toDelete[result.Policy]; !ok {