Fui demasiado rápido, lo ejecuté a la primera, cambié un montón de código legacy y no tenía claro bien el target al que iba dirigido. La aplicación de consola enviaba un email avisando de una renovación de suscripción que habían realizado en las últimas semanas. Como un recordatorio de "Hey, tienes estas ventajas, gracias por renovar" a muchos clientes. El programa se ejecutó, terminó y me dio el OK con el que yo marcaba el ticket como resuelto.
Apenas 20 min después me avisaron que decenas de usuarios se habían quejado, les había llegado la confirmación de la suscripción sin haber renovado ninguna. Muchos estaban asustados porque no eran precisamente 10 euros, sino cerca de 400, lo que costaba la dichosa suscripción. Al momento analicé la base de usuarios a la que estaba apuntando y la base de usuarios a la que teníamos que apuntar. Tremendo fail.
El correo se había enviado a alrededor de 50.000 usuarios, de los cuales solo 30.000 eran poseedores de una suscripción actual, y que no eran ni siquiera todos los que había que apuntar. Había sido un problema a la hora de establecer las condiciones del where: yo apuntaba a todos los que habían tenido una suscripción en el pasado, seas cuales sean y en realidad había que apuntar a todos los que habían tenido la del año anterior y tenían una suscripción en la actualidad. Fuck.
Nos sentamos con soporte y marketing y trazamos los pasos a seguir: correo de disculpa al cliente, correo a los usuarios que lo han recibido por error y correo a los usuarios que faltan. Gracias a un buen sistema de logging pudimos recuperar las listas, usuarios impactados y demás. Sino, habría sido imposible recomponer esa información.
Fue un día interesante, 10/10 en stress.