Troubleshooting de staff
Esta página resuelve los problemas operativos más frecuentes del staff
EMA Health. Si no encuentras tu caso, escribe en #emavault Slack.
No puedo loguearme
Sección titulada «No puedo loguearme»”Credenciales inválidas” / “Continue with Google” no funciona
Sección titulada «”Credenciales inválidas” / “Continue with Google” no funciona»- Verifica que estás usando tu correo
@emahealth.io(no personal). - Cierra sesión de Google y vuelve a entrar.
- Probar en incógnito.
”NO_VAULT_USER” después de Google login
Sección titulada «”NO_VAULT_USER” después de Google login»Tu Google login funcionó pero no estás en vault_users.
- Pídele a un admin que te cree (ver getting-started).
- Refresh y vuelve a loguear.
”Usuario inactivo”
Sección titulada «”Usuario inactivo”»Tu user existe pero is_active=false. Admin tiene que reactivarte.
”Forbidden” al entrar a un módulo
Sección titulada «”Forbidden” al entrar a un módulo»Causa: tu rol no tiene can_read=true en vault_permissions para
ese módulo.
Solución:
- Verifica con admin si tu rol debería tener acceso.
- Admin actualiza
vault_permissionso cambia tu rol.
El sidebar no muestra módulos esperados
Sección titulada «El sidebar no muestra módulos esperados»Causa: tu rol filtró los items via canRead().
- Verifica tu rol en
Equipo Vault → tu usuario. - Admin ajusta permisos si corresponde.
Provisioning de tenant falló
Sección titulada «Provisioning de tenant falló»- Ver el error específico en la response (UI muestra cuál step falló).
- Ir a
Audit logfilter por table=tenantsaction=UPDATEuser=tú. - Identificar la causa raíz:
- Aidbox unreachable → problema infra.
- Producto X retornó 503 → ese producto está caído.
- X-Platform-Key inválido → admin re-rota con producto destino.
- Slug duplicado → cambiar slug.
- Re-correr
Provisionar productoscon los products que faltan. El proceso es idempotente, no duplica recursos.
El tenant no aparece en su producto
Sección titulada «El tenant no aparece en su producto»Causa probable: provisioning incompleto.
- Verifica
emashared.tenant_productspara el tenant_id. - Si no hay row para ese product, falta el provisioning.
- Re-correr provisioning desde Vault.
El cron de GitHub sync no actualiza issues
Sección titulada «El cron de GitHub sync no actualiza issues»Verificar:
- Cron activado en CF dashboard.
GITHUB_TOKENválido y con scoperepo.- Logs Worker muestran
[cron] github-syncejecutando. - Webhook configurado en GitHub repo settings (alternativa al cron).
La propuesta AI no se genera
Sección titulada «La propuesta AI no se genera»Causas:
ANTHROPIC_API_KEYmal configurado → 500.- Anthropic API caído → 503 de upstream.
- Lead sin contexto suficiente → Sonnet retorna texto genérico.
- Rate limit Anthropic → esperar.
Solución:
- Refresh la página y reintentar.
- Si sigue fallando, escalar a admin que verifica
ANTHROPIC_API_KEY. - En último caso, escribir la propuesta a mano (siempre opción).
EMI proxy retorna 503 en mi producto cliente
Sección titulada «EMI proxy retorna 503 en mi producto cliente»Causas:
- EMI Worker caído → check
https://emi.emahealth.io/api/health. tenant_emi_access.is_active=false→ admin lo desactivó.emi_apps.{product}no está enga→ sigue alpha.- Rate limit EMI Worker excedido → esperar.
Diagnóstico: GET /api/emi/access retorna razón.
Las métricas Ema Well dan 503
Sección titulada «Las métricas Ema Well dan 503»Causas:
EMAWELL_*secrets faltantes → admin agrega en Worker.- Ema Well Supabase caído → check
yvfxhrnghajwblyqtoelhealth. - service_role key incorrecta → admin verifica.
El theme dark se ve mal en alguna página
Sección titulada «El theme dark se ve mal en alguna página»Causa: alguien hardcodeó hex en componente.
- NO modifiques el componente en producción sin admin.
- Reportar en
#emavaultcon screenshot. - Solución correcta: usar
[data-theme="dark"]CSS rule global.
Búsqueda global no encuentra mi cliente
Sección titulada «Búsqueda global no encuentra mi cliente»Causa: el slug es distinto al nombre, o el cliente está archivado.
- Buscar por slug exacto.
- Filtrar
Tenantspor status=archived para ver inactivos. - Si no encuentras, admin verifica DB.
”Cannot connect to Supabase” en Dashboard
Sección titulada «”Cannot connect to Supabase” en Dashboard»Causa probable: Supabase emahub caído.
- Check status.supabase.com.
- Esperar.
- Si dura más de 1h, escalar a admin.
El cliente no recibe email de invitación
Sección titulada «El cliente no recibe email de invitación»Causas:
- Email mal escrito al invitar → corregir y re-invitar.
- Loops API key inválida → admin verifica.
- Email en spam del cliente → verificar con cliente.
Solución: re-enviar desde TenantDetail → tab Productos → click en
producto → Resend invite.
El audit log no carga
Sección titulada «El audit log no carga»Causa: la tabla creció demasiado o hay query lento.
- Aplicar filtros (user, table, date range) para reducir scope.
- Si sigue lento, admin DB considera particionar.
Modificar precio de un servicio del catálogo
Sección titulada «Modificar precio de un servicio del catálogo»- Ir a
Catálogo→ click en el servicio. - Click
Editar precios. - Cambiar
base_price_clp. - Si tiene
pricing_quotesactivas, sistema te avisa cuántas usan este precio. - Click
Guardar→ audit_log registra.
Reportar un bug
Sección titulada «Reportar un bug»Si nada de lo anterior aplica:
- Reproducir el bug.
- Tomar screenshot.
- DevTools → Console → screenshot también.
- Postear en
#emavaultSlack:- Pasos para reproducir.
- Screenshots.
- Hora aprox.
- Tu rol.