Causa raíz frente a síntoma
La trampa más tentadora al depurar es el parche que hace que el error desaparezca sin arreglar la causa. Si user es indefinido y lo "arreglas" con if (user) { ... }, el error se detiene, pero ahora los registros de usuario no hacen nada en silencio, lo cual es peor: un fallo ruidoso al menos te decía que algo estaba mal, y ahora nada te avisa. La pregunta real es ¿por qué user es indefinido aquí? Quizás la consulta a la falló. Quizás un campo fue renombrado. Quizás falta un await más arriba en la cadena.
Cuando la IA propone un arreglo, pregúntale:
- "¿Esto arregla la causa o esconde el síntoma?"
- "¿Cuál fue la razón original por la que el valor estaba mal?"
- "¿Podría esta misma causa raíz romper alguna otra cosa?"
Un arreglo de causa raíz suele hacer que el código sea más simple o más claro. Un parche de síntoma suele añadir una guardia, un try/catch que traga errores, o un valor por defecto que tapa el problema real. Sospecha de este segundo tipo. Hay una señal que vale la pena aprender: si un arreglo añade código cuyo único trabajo es evitar un fallo en lugar de hacer lo correcto, probablemente estás parchando un síntoma. Los arreglos reales tienden a eliminar por completo el estado imposible, no solo a sobrevivirlo.