Troubleshooting
Démarrage
POSTGRES_PASSWORD is required
Error: POSTGRES_PASSWORD is required
Cause : la variable n'est pas définie dans .env.
Solution :
cp .env.example .env
# Éditez .env et renseignez POSTGRES_PASSWORD
AUTH_SECRET is required
Cause : AUTH_SECRET n'est pas défini.
Solution :
npm run generate-secret
# Copiez la valeur dans .env
L'app démarre mais affiche une erreur de connexion DB
Cause : l'app démarre avant que PostgreSQL soit prêt.
Solution : Docker Compose attend le healthcheck pg_isready avant de démarrer l'app. Si cela persiste :
docker compose down
docker compose up
Port 4000 déjà utilisé
Solution :
# Trouver le processus
lsof -i :4000
# Ou changer le port dans docker-compose.yml
ports:
- "4001:4000"
Authentification
Redirection infinie vers /login
Cause : AUTH_URL ne correspond pas à l'URL réelle de l'application.
Solution : vérifiez que AUTH_URL dans .env correspond exactement à l'URL du navigateur (protocole + domaine + port).
# Dev local
AUTH_URL=http://localhost:4000
# Production
AUTH_URL=https://patrimo.votre-domaine.com
CredentialsSignin à la connexion
Cause : email ou mot de passe incorrect.
Solution : vérifiez que l'utilisateur existe en base. Réinitialisez le mot de passe :
npm run hash-password nouveau_mot_de_passe
# Mettre à jour la colonne passwordHash en base
Import CSV
Format CSV non reconnu
Cause : le fichier exporté n'est pas dans un format supporté.
Solution : vérifiez que vous exportez depuis la bonne section de votre banque. Voir Import CSV pour les instructions par banque.
0 transactions importées sans erreur
Cause : toutes les transactions sont déjà présentes (doublons détectés via importHash).
Solution : c'est le comportement attendu — l'import est idempotent. Si vous attendez de nouvelles transactions, vérifiez la période couverte par votre export CSV.
Les soldes ne s'affichent pas après import
Cause : certains formats (Trade Republic) n'incluent pas de snapshots de solde dans le CSV.
Solution : saisissez le solde manuellement via Saisir un solde sur le Dashboard.
Base de données
Prisma Client is not generated
Error: @prisma/client did not initialize yet
Solution :
npx prisma generate
Migration échouée
Error: Migration failed
Solution :
# Vérifier l'état des migrations
npx prisma migrate status
# En dev — reset complet (⚠️ perd toutes les données)
npm run db:reset
P2002 — Unique constraint violation
Cause : tentative de créer un doublon (institution avec le même nom, snapshot sur une date déjà existante…).
Solution : vérifiez les règles d'unicité concernées. Pour les snapshots, c'est normal — l'upsert gère ce cas automatiquement.
Build et CI
Build Docusaurus échoue avec broken anchors
Cause : un lien pointe vers une ancre qui n'existe pas (souvent dû aux [DB]/[APP] dans les titres de règles).
Solution : retirez l'ancre du lien ou utilisez l'ancre générée exacte.
Tests Jest échouent sur les montants Decimal
Cause : comparaison JavaScript === sur des objets Decimal Prisma.
Solution : utilisez Number(decimal) pour les assertions ou les matchers Jest dédiés.