El ambiente de staging
El servidor de staging corre exactamente las mismas condiciones que producción: misma versión de Node, misma configuración de MySQL, mismo sistema de PM2 para gestión de procesos. La diferencia es que los datos son de prueba y los puertos son distintos (4001 en lugar de 3001).
Esto importa más de lo que parece. Muchos equipos tienen staging en sus laptops, o en un Docker container con SQLite, o en un ambiente que "es parecido" a producción. Lo que esos ambientes no capturan son los problemas específicos del servidor real: permisos de sistema de archivos, configuración de MySQL, tamaños de packet, zona horaria del sistema.
Cuando algo funciona en local pero no en staging, el problema siempre está en la diferencia entre ambientes. Y si no tenés staging real, no sabés que el problema existe hasta que lo encontrás en producción.