Manejo de Errores y Casos Borde
Cuando las automatizaciones fallan (y lo harán), el manejo elegante de errores es la diferencia entre un tropiezo menor y un desastre. Construye flujos resilientes.
Contenido de Curso Premium
Esta lección es parte de un curso premium. Mejora a Pro para desbloquear todos los cursos premium y su contenido.
- Acceso a todos los cursos premium
- Más de 1000 plantillas de skills de IA incluidas
- Contenido nuevo cada semana
La Llamada de las 3 AM
🔄 Repaso rápido: En la lección anterior, exploramos procesamiento de datos y flujos multi-paso — conectando sistemas, transformando datos y manejando lookups. Ahora toca enfrentar la realidad: las cosas saldrán mal.
Tu automatización ha estado corriendo perfecto durante tres semanas. Ya casi te olvidaste de ella. Entonces a las 3 AM, tu celular vibra: “42 facturas duplicadas enviadas a clientes.”
¿Qué pasó? La API de facturación tuvo una caída temporal. Tu automatización reintentó, pero la lógica de reintento estaba mal. Cada reintento no verificó si la factura ya se había enviado. Entonces cada reintento creó una nueva factura. Y tu automatización obedientemente envió cada una.
Esto no es hipotético. Las fallas de automatización causan daño real: cargos duplicados, comunicaciones perdidas, datos corrompidos, emails vergonzosos a clientes. Y las peores fallas son las que nadie nota hasta que un cliente se queja.
El manejo de errores no es la parte emocionante de la automatización. Pero es la parte que separa un sistema confiable de una bomba de tiempo.
Del Camino Feliz a la Realidad
En las Lecciones 3-5, diseñamos automatizaciones por el “camino feliz” — el escenario donde todo funciona como se espera. Esta lección es sobre todo lo demás. Los datos que faltan. La API que cayó. El usuario que envía el formulario dos veces. La fecha que no se puede parsear. Las automatizaciones del mundo real pasan más tiempo manejando excepciones que procesando casos normales.
Inventario de Modos de Falla
Antes de manejar errores, necesitas saber qué puede salir mal:
Fallas Externas (Cosas que se rompen fuera de tu control)
| Falla | Impacto | Frecuencia |
|---|---|---|
| Timeout de API | El paso no se puede completar | Común |
| Rate limit excedido | Demasiadas peticiones, paso bloqueado | Común |
| Caída de servicio | Sistema completo no disponible | Ocasional |
| Autenticación expirada | Credenciales ya no válidas | Ocasional |
| Fuente de datos cambió | Campos movidos, renombrados o eliminados | Raro |
Fallas de Datos (Los datos no son lo que esperabas)
| Falla | Impacto | Frecuencia |
|---|---|---|
| Campo requerido faltante | No se puede procesar el registro | Común |
| Formato de datos incorrecto | La transformación falla | Común |
| Envío duplicado | El mismo trigger se dispara dos veces | Ocasional |
| Valores null o vacíos | Cálculos fallan, templates se renderizan mal | Común |
| Caracteres inesperados | Caracteres especiales rompen el parsing | Ocasional |
Fallas de Lógica (Tu automatización hace lo incorrecto)
| Falla | Impacto | Frecuencia |
|---|---|---|
| Condición evalúa mal | Datos ruteados incorrectamente | Ocasional |
| Bucle no termina | Corre para siempre, consume recursos | Raro pero catastrófico |
| Condición de carrera | Pasos paralelos en conflicto | Ocasional |
| Datos obsoletos | El paso usa información desactualizada | Ocasional |
✅ Revisión Rápida: Piensa en uno de tus candidatos de automatización. Para cada paso, pregúntate: “¿Qué pasa si este paso falla?” Si tu respuesta es “no sé” o “nada, supongo,” eso es una vulnerabilidad.
Estrategias de Reintento
Cuando un paso falla por un problema temporal (timeout de API, falla de red), reintentar frecuentemente lo resuelve. Pero reintentar incorrectamente puede empeorar las cosas.
El reintento ingenuo (NO HAGAS ESTO):
Si el paso falla: reintentar inmediatamente
Si el reintento falla: reintentar inmediatamente de nuevo
Repetir para siempre
Esto martilla el servicio que está fallando, puede crear duplicados y nunca para.
El reintento inteligente:
Si el paso falla: esperar 1 minuto, reintentar (intento 2 de 3)
Si el reintento falla: esperar 5 minutos, reintentar (intento 3 de 3)
Si sigue fallando: DETENER, marcar como fallido, alertar humano
Backoff exponencial con jitter: El estándar de oro para reintentos. Cada reintento espera más, y un elemento aleatorio previene que múltiples automatizaciones reintenten simultáneamente.
Intento 1: Inmediato
Intento 2: Esperar 1-2 minutos (aleatorio)
Intento 3: Esperar 4-8 minutos (aleatorio)
Intento 4: Esperar 16-32 minutos (aleatorio)
Si todos fallan: Alertar humano
Idempotencia: La Red de Seguridad
Antes de reintentar, siempre verifica: “¿Este paso ya tuvo éxito?” Si el Paso 3 envió una factura pero el Paso 4 falló, reintentar desde el Paso 3 NO debería enviar una segunda factura.
Diseña cada paso para ser idempotente — ejecutarlo dos veces produce el mismo resultado que ejecutarlo una vez. Técnicas:
- Verificar registros existentes antes de crear nuevos
- Usar IDs únicos para prevenir duplicados
- Verificar estado antes de tomar acción
Manejando Casos Borde
Los casos borde son los escenarios inusuales-pero-válidos que rompen automatizaciones. El mejor momento para encontrarlos es durante el diseño — no después de que hayan causado un problema.
Casos borde comunes para probar:
Datos vacíos/null:
- ¿Qué si el campo de nombre del cliente está en blanco?
- ¿Qué si el monto es $0.00?
- ¿Qué si falta la dirección de email?
Valores límite:
- ¿Qué si la fecha es 1 de enero (límite de año)?
- ¿Qué si la cantidad del pedido es 1? ¿Y si es 10,000?
- ¿Qué si el texto tiene 50,000 caracteres?
Variaciones de formato:
- ¿Qué si el teléfono es “(55) 1234-5678” vs “5512345678” vs “+52-55-1234-5678”?
- ¿Qué si el nombre tiene caracteres especiales: “O’Brien,” “García-López,” “De la Cruz”?
- ¿Qué si las fechas están en DD/MM/AAAA en vez de MM/DD/AAAA?
Casos borde de timing:
- ¿Qué si el trigger se dispara dos veces en 1 segundo (envío duplicado)?
- ¿Qué pasa durante transiciones de horario de verano?
- ¿Qué hay de las diferencias de zona horaria entre sistemas?
Construyendo Manejo de Errores en Tu Diseño
Para cada paso en tu automatización, define tres cosas:
1. Cómo se ve el éxito:
Paso 3: Crear registro de cliente en sistema de facturación
ÉXITO: Registro creado, billing_id devuelto
2. Cómo se ve la falla:
MODOS DE FALLA:
- Timeout de API: Sin respuesta en 30 segundos
- Duplicado: Cliente con este email ya existe
- Error de validación: Campos requeridos faltantes
- Error de permisos: API key no tiene acceso de escritura
3. Qué hacer para cada falla:
MANEJO:
- Timeout de API: Reintentar con backoff exponencial (3 intentos)
- Duplicado: Registrar advertencia, usar ID existente, continuar
- Error de validación: Registrar error con detalles de campos,
saltar registro, alertar admin
- Error de permisos: Alertar admin inmediatamente, pausar automatización
Monitoreo y Alertas
El manejo de errores atrapa problemas en tiempo real. El monitoreo atrapa problemas a lo largo del tiempo.
Qué monitorear:
| Métrica | Qué te dice | Umbral de alerta |
|---|---|---|
| Tasa de éxito | % de ejecuciones completadas sin errores | Por debajo de 95% |
| Tiempo de ejecución | Cuánto tarda la automatización | Más de 2x lo normal |
| Conteo de errores | Número de fallas por día | Cualquier incremento sobre la línea base |
| Registros procesados | Volumen de items manejados | Caídas o picos inesperados |
| Profundidad de cola | Backlog de items sin procesar | Crecimiento consistente |
Cadencia de monitoreo:
- Alertas en tiempo real: Para fallas que necesitan atención inmediata (corrupción de datos, envíos duplicados)
- Digest diario: Resumen de todas las ejecuciones, errores y advertencias
- Revisión semanal: Tendencias, tasas de éxito, patrones de rendimiento
El Checklist de Manejo de Errores
Antes de deployar cualquier automatización, verifica:
- Cada paso tiene estados definidos de éxito y falla
- La lógica de reintento incluye máximo de intentos y backoff
- Los reintentos son idempotentes (seguros de repetir)
- Datos null/vacíos son manejados en cada paso
- Triggers duplicados son detectados y gestionados
- Errores irrecuperables alertan a un humano con contexto
- Todos los errores se registran con suficiente detalle para debugging
- Hay un override manual para pausar o detener la automatización
Ejercicio: Agrega Manejo de Errores a Tu Flujo
Toma el flujo multi-paso que diseñaste en el ejercicio de la Lección 5. Para cada paso:
- Lista 2-3 cosas que podrían salir mal
- Define cómo la automatización debería responder a cada una
- Diseña la estrategia de reintento (si aplica)
- Especifica cuándo debería alertarse a un humano
- Identifica un caso borde que el paso debería manejar
Conclusiones Clave
- Las fallas silenciosas son peores que las fallas ruidosas — siempre alerta a alguien cuando algo se rompe
- Las estrategias de reintento necesitan máximo de intentos, delays crecientes y verificaciones de idempotencia
- Los casos borde causan la mayoría de las fallas de automatización — prueba con datos vacíos, valores límite, variaciones de formato y problemas de timing
- Para cada paso: define el éxito, lista los modos de falla y especifica acciones de recuperación
- Monitorea tasa de éxito, tiempo de ejecución y conteo de errores para detectar degradación gradual
- El checklist de manejo de errores previene los errores de deployment más comunes
Siguiente: ya diseñaste y blindaste tus automatizaciones contra errores. Ahora vamos a probarlas adecuadamente y optimizar para confiabilidad a largo plazo.
Comprobación de Conocimientos
Primero completa el quiz de arriba
¡Lección completada!