Troubleshooting¶
Problemas comunes y cómo resolverlos. Organizado por superficie (login, evaluaciones, planes, hosting).
Login y autenticación¶
"Cuenta bloqueada, reintentá más tarde"¶
Causa: 5 intentos fallidos consecutivos. La cuenta queda bloqueada 10 minutos.
Solución: - Esperar 10 minutos y reintentar con la contraseña correcta - O pedir a un TenantAdmin que te desbloquee desde Usuarios y sesiones → Desbloquear
"Tu organización está inactiva"¶
Causa: El tenant está en estado Suspended o Cancelled.
Solución: contactar al SystemAdmin de la plataforma para reactivar.
"Email o contraseña incorrectos" (estás seguro de que son correctos)¶
Posibles causas:
- Estás entrando por el subdominio equivocado. Si tu cuenta es del tenant acme, entrá por acme.eval360pro.com, no por app.eval360pro.com ni otro subdominio
- Hay restricción de tenant: el sistema verifica que tu email pertenezca al tenant del subdominio. Si no, devuelve "credenciales inválidas" sin diferenciar el motivo (para no revelar si el email existe en otro tenant)
"Antiforgery token could not be decrypted"¶
Causa: Las claves de Data Protection se reciclaron (ej. después de un deploy, o el AppPool reiniciado en hosting compartido).
Solución corta: refrescar la página (Ctrl+F5). El token se regenera.
Solución permanente (si pasa seguido en producción): persistir las Data Protection Keys a disco. Ver Program.cs — debe tener algo como:
builder.Services.AddDataProtection()
.PersistKeysToFileSystem(new DirectoryInfo("App_Data/DataProtection-Keys"))
.SetApplicationName("Eval360Pro");
Activar 2FA pero no recibí el código en la app¶
- Verificar que la hora del celular esté sincronizada (TOTP es time-based; si tu reloj está desfasado, los códigos no coinciden)
- Re-escanear el QR (a veces el escáner no captura bien)
- Probar copiar la clave manual (debajo del QR) en vez del QR
Perdí mi celular con el autenticador¶
No hay recovery codes implementados. La única salida: - Pedir a un TenantAdmin que te resetee 2FA desde Usuarios y sesiones
Empleados / cargas masivas¶
"PLAN_LIMIT_EMPLOYEES" al crear empleado¶
Causa: tu tenant está en el límite de empleados activos del plan.
Solución:
- Desactivar empleados terminados que sigan como Active (cambiar status a Terminated)
- O hablar con SystemAdmin para cambiar de plan a uno con más capacidad
Importar CSV de empleados — algunos no se cargaron¶
Causas típicas: - Email duplicado (ya existe ese email en el tenant) - Faltan firstName, lastName o email - Manager o departamento no existen (no se asignan, pero el empleado se crea)
Mira el resultado del import: muestra por fila si fue created, skipped (duplicado) o error.
El CSV de import tiene encabezados raros¶
Encabezados aceptados (lowercase, sin espacios): firstname, lastname, email, employeecode, department, manager, jobprofile, hiredate. Los obligatorios son firstname, lastname, email. Los demás son opcionales.
Evaluaciones¶
"PLAN_LIMIT_CYCLES" al crear ciclo¶
Causa: ya creaste el máximo de ciclos permitidos por tu plan en el año calendario en curso.
Solución: cambiar de plan, o esperar al próximo año.
Generé evaluaciones pero faltan empleados¶
- Verificar que esos empleados están en estado
Active(noOnLeaveniTerminated) - Los empleados se filtran por activo al generar
Un empleado debería ver una evaluación pero no aparece en "Mis evaluaciones"¶
Posibles causas:
- El ciclo está en estado Draft (todavía no abrió)
- El empleado no está asignado como participant. Ir al detalle del ciclo y verificar
- El status de su participant ya es Submitted (lo terminó); va a aparecer como solo lectura, no en la lista de pendientes
Auto-asignación de pares no asignó suficientes¶
- Verificar que hay suficientes empleados activos en el tenant (o en el mismo departamento si marcaste "Preferir mismo depto")
- El min/max peers del ciclo podría estar muy alto vs el tamaño de la organización
El score promedio no incluye al manager¶
- Verificar que el manager efectivamente envió su evaluación (status
Submitted). Si la dejó enInProgress, no cuenta - Verificar que está asignado como participant tipo
Manageren esa evaluación
Planes de desarrollo¶
"Generar desde brechas" no creó nada¶
- Verificar que el empleado tiene perfil de cargo asignado
- Verificar que tiene al menos una evaluación cerrada (sin esto no hay brechas calculadas)
- Verificar el filtro "prioridad máxima" — si está en 4 (OK), no incluye nada porque no hay brecha
Las brechas no se actualizaron después del último ciclo¶
Las brechas se recalculan al cerrar el ciclo. Si el ciclo sigue Open o InProgress, los datos de brechas son del ciclo anterior cerrado.
Email¶
Test de SMTP devuelve "Authentication failed"¶
- Usuario o password mal
- Si es Office 365 con MFA: necesitás un App Password, no la contraseña normal
- Verificar que el tenant Office 365 tiene SMTP Auth habilitado (Microsoft lo deshabilitó por default en cuentas nuevas)
Test de Microsoft Graph devuelve 403¶
- El permiso
Mail.Sendnecesita admin consent en Azure AD - El User ID configurado debe existir y tener buzón
Test de Gmail devuelve "invalid_grant"¶
- El refresh token expiró o fue revocado
- Re-hacer el OAuth dance para obtener un refresh token nuevo
Emails no llegan pero el test sale OK¶
- Revisar carpeta de spam del destinatario
- El email remitente probablemente no tiene SPF/DKIM/DMARC configurados → marcado como sospechoso por Gmail/Outlook
- Configurar registros DNS apropiados en el dominio del email remitente
Cambié el Email.MasterKey y ahora los SMTP guardados no funcionan¶
Causa: las contraseñas SMTP están encriptadas con la key vieja. Con la key nueva no se pueden descifrar.
Solución: re-ingresar las contraseñas SMTP de cada tenant. Una vez guardadas con la key nueva, vuelven a funcionar.
Subdominios¶
Login en un subdominio me desloguea de otro¶
Es el comportamiento esperado. Las cookies de sesión están acotadas al subdominio (acme.eval360pro.com no comparte cookies con demo.eval360pro.com). Cada organización es una sesión independiente.
API REST¶
"401 Unauthorized" al llamar API¶
- Verificar que el header
Authorization: Bearer {token}está presente - El access token vence en ~1 hora. Renovarlo con
POST /api/auth/refreshusando el refresh token - Si el refresh token también vencó, re-loguear con
POST /api/auth/token
"403 Forbidden" al llamar API¶
- El usuario está autenticado pero le faltan permisos (rol)
- Verificar la matriz en Roles y permisos
"429 Too Many Requests"¶
Estás golpeando el rate limit. Default: - Endpoints de auth: 10 req/min por IP - Resto: 200 req/min por IP
Esperar 1 minuto y reintentar. Para clientes legítimos con tráfico mayor, hablar con el SystemAdmin para ajustar límites.
Performance¶
El dashboard carga lento la primera vez¶
- Las queries de stats organizacionales pueden tomar segundos en tenants con muchos empleados (~1000+)
- Después del primer load se cachean en memoria y van rápido
- Si persiste lento: verificar índices SQL Server (debería tener índices en
TenantId,OccurredAtdel audit log, etc.)
Carga de empleados (CSV) muy lenta¶
- Verificar que el CSV no excede 2 MB (límite por config)
- Si tiene muchas filas (>1000), considerar dividirlo en lotes