Saltar a contenido

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 (no OnLeave ni Terminated)
  • 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ó en InProgress, no cuenta
  • Verificar que está asignado como participant tipo Manager en 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.Send necesita 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/refresh usando 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, OccurredAt del 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