---
name: feedback-put-payload-minimal
description: "Ne jamais spread l'objet inv pour un PUT investissements — construire un payload minimal champ par champ"
metadata: 
  node_type: memory
  type: feedback
  originSessionId: 06bf2c9d-6350-45bd-a65f-4399f1218408
---

Ne jamais faire `{ ...inv, champModifie: valeur }` pour un `PUT /investissements/:id`.

**Why:** L'objet `inv` côté frontend contient des champs extra (`simul`, `remboursements`, `auto_reinvest`, `fiscalite_override`, `plateforme_nom`, etc.) absents du schéma Zod backend. Certains ont des valeurs invalides pour le schéma (ex. arrays, objets imbriqués), ce qui provoque une "Validation error" même si le champ modifié est correct.

**How to apply:** Toujours construire le payload explicitement avec uniquement les champs attendus par le schéma Zod de la route (voir `backend/src/routes/investissements.js` — `const Schema = z.object({...})`). Utiliser `|| undefined` pour les champs optionnels string et `?? null` pour les champs nullable.
