# 10.4 - Erreurs fréquentes et diagnostic

## Conteneur PostgreSQL ou pgvecto_upgrade en erreur

```bash
sudo docker ps -a --format '{{.Names}} {{.Image}} {{.Status}}' | grep -Ei 'immich|postgres|pgvecto|vector'
sudo docker logs --tail 300 NOM_CONTENEUR
sudo zfs list
df -hT
```

Chercher la première erreur, pas seulement `exit 1`. Vérifier version PostgreSQL, extension, permissions, espace et migration interrompue. Ne pas supprimer `pgData`.

## Erreur Permission denied

```bash
sudo docker exec NOM_CONTENEUR_IMMICH id
sudo docker inspect NOM_CONTENEUR_IMMICH --format '{{range .Mounts}}{{println .Source "->" .Destination}}{{end}}'
sudo stat -c '%u:%g %a %n' CHEMIN_DATASET
sudo getfacl CHEMIN_DATASET
```

Corriger l'utilisateur ou l'ACL exacte, pas avec `777`.

## Fichier `.immich` absent

Vérifier que le bon dataset est monté au bon chemin et que l'application peut lire et écrire. Ne pas recréer manuellement les marqueurs pour masquer un montage incorrect.

## Port 30041 inaccessible

```bash
sudo ss -ltnp | grep 30041
sudo docker ps --format '{{.Names}} {{.Ports}}' | grep -i immich
curl -I http://127.0.0.1:30041
```

## Reverse proxy 525 ou 403

- 525 : certificat ou négociation TLS avec l'origine ;
- 403 : règle Cloudflare, Authentik, pare-feu ou application ;
- comparer accès direct local et domaine public ;
- examiner Caddy et Cloudflare.

```bash
curl -vI https://immich.dreamsaphir.net
journalctl -u caddy -n 100 --no-pager
```

## Upload interrompu

- taille maximale du proxy ;
- délai de 600 secondes ;
- espace libre ;
- réseau mobile ;
- limite Cloudflare ;
- journaux serveur.

## GPU absent

```bash
nvidia-smi
sudo docker exec NOM_CONTENEUR_IMMICH nvidia-smi
sudo docker exec NOM_CONTENEUR_ML nvidia-smi
```

Si le premier fonctionne et pas les suivants, vérifier l'allocation GPU des applications. Après une mise à jour TrueNAS, contrôler le pilote et redéployer l'application.

## OAuth en boucle

- Issuer URL ;
- Client ID et secret ;
- trois URI de redirection ;
- domaine public ;
- heure système ;
- certificat ;
- accès mobile `app.immich:///oauth-callback`.

## Diagnostic fourni

```bash
IMMICH_COMPOSE_DIR=/srv/immich/app ./scripts/diagnostic_immich.sh
```

Examiner et masquer les informations sensibles avant partage.