Immich Data Integrity Critical

ImmichDataIntegrityCritical #

Meaning #

The Immich data integrity-check cronjob “monitoring-integrity” has failed. This job verifies that all photos in the Immich library have not been corrupted or modified unexpectedly.

Impact #

Without integrity monitoring, silent data corruption could go undetected, potentially leading to loss of irreplaceable photos. While filesystem-level protections like ZFS help prevent bitrot, this check catches corruption from app updates, misconfigurations, or other software issues.

Diagnosis #

Check the monitoring-integrity cronjob status:

kubectl get cronjob -n immich monitoring-integrity

Check recent job runs:

kubectl get jobs -n immich -l app.kubernetes.io/name=monitoring-integrity --sort-by=.metadata.creationTimestamp

Check the logs of the most recent failed job:

kubectl logs -n immich -l app.kubernetes.io/name=monitoring-integrity --tail=100

Verify the integrity database and hash storage are accessible:

kubectl get pods -n immich -l app.kubernetes.io/component=monitoring-integrity

Mitigation #

If the job failed due to a transient issue, trigger a manual run:

kubectl create job --from=cronjob/monitoring-integrity -n immich monitoring-integrity-manual-$(date +%s)

If the job failed due to corrupted photos, verify that backups are available and consider restoring affected files. Check the Immich logs for any recent updates or configuration changes that may have caused the corruption.

If the issue persists, check the monitoring-integrity script and database connection. The cronjob may need to be restarted or reconfigured.