Logs
Copia un prompt de configuración con los pasos de instalación y la guía completa en markdown para este plugin.
Logs e insights de logs
Sección titulada “Logs y Log Insights”La app Logs tab opens Análisis de logs por defecto. Usa Insights para priorizar categorías, versiones y dispositivos en un período de 1, 3, 7 o 30 días. Cambia a la Logs subpestaña cuando necesitas los eventos de dispositivo subyacentes, filtros y marcas de tiempo descritos a continuación.
Entender los logs de la aplicación
Sección titulada “Entendiendo los logs de la aplicación”La subpestaña Raw Logs proporciona un historial detallado de eventos de actualización e información de diagnóstico de tu aplicación. Es útil para confirmar la evidencia a nivel de dispositivo detrás de un Insight, solucionar problemas en una ruta de actualización y entender cómo interactúan los dispositivos con Capgo. Abre una app, elige Logs, luego elige la Logs subpestaña.

La interfaz de Raw Logs incluye:
- Subpestaña Logs — el control de navegación para filas de logs individuales.
- Botón de recarga — actualiza la lista de logs con los datos más recientes.
- Filtros de rango de tiempo y acción — filtra el flujo de eventos por tiempo y acción.
Cada fila muestra:
- Marca de tiempo (UTC)
- Device ID
- Acción code (lo que ocurrió)
- Nombre de la versión (bundle o
builtin)
Haz clic en una fila para ir a la página de detalle del dispositivo y ver su historial completo.
Filtrar por rango de fechas
Sección titulada “Filtrado por rango de fechas”Puedes filtrar los logs por un período de tiempo específico usando el selector de fechas:

- Presets rápidos - Selecciona rangos de tiempo comunes: Últimas 1h, 3h, 6h o 12h
- Hora de inicio - Establece una hora de inicio personalizada para el rango
- End Time - Set a custom end time for the range
- Calendario - Selecciona fechas específicas usando la vista de calendario
Haz clic en “Seleccionar” para aplicar el rango de fechas elegido, o en “Cancelar” para cerrar el selector.
Filtrar por tipo de acción
Sección titulada “Filtrado por tipo de acción”El menú desplegable Actions permite filtrar los registros por tipos de eventos específicos:

Los filtros de acciones disponibles incluyen:
- Latido del dispositivo - Periodic health checks from devices
- Eliminación de versión solicitada - Cuando se elimina una versión de bundle
- Restablecimiento a la versión predeterminada - Cuando un dispositivo revierte al bundle integrado
- Versión instalada correctamente - Instalación de bundle exitosa
- Nueva versión enviada al dispositivo - Cuando Capgo envía una actualización a un dispositivo
- Error al instalar la versión - Cuando falla la instalación del bundle
Usa la caja de búsqueda en la parte superior para encontrar rápidamente tipos de acciones específicos. Puedes seleccionar varias acciones para mostrar registros que coincidan con cualquiera de los tipos seleccionados.
Snippet de log de ejemplo (datos ficticios)
Sección titulada “Fragmento de registro de ejemplo (datos ficticios)”| Hora (UTC) | Device ID | Acción | Versión | Qué te indica |
|---|---|---|---|---|
| 2025-01-14 10:00:01 | A1B2C3 | get | 2.4.1 | El dispositivo consultó a Capgo si hay una actualización |
| 2025-01-14 10:00:03 | A1B2C3 | download_manifest_start | 2.4.1 | Se inició la descarga delta; SDK está a punto de descargar los archivos delta modificados |
| 2025-01-14 10:00:07 | A1B2C3 | download_40 | 2.4.1 | Descarga del bundle al 40% |
| 2025-01-14 10:00:12 | A1B2C3 | download_zip_complete | 2.4.1 | Descarga del zip finalizada |
| 2025-01-14 10:00:13 | A1B2C3 | set | 2.4.1 | Bundle instalado y marcado para la próxima ejecución |
| 2025-01-14 10:05:00 | B9C8D7 | disableAutoUpdateToMajor | 1.9.0 | La política del channel bloqueó el salto a 2.x |
| 2025-01-14 10:05:05 | B9C8D7 | rateLimited | integrado | El dispositivo alcanzó el límite de peticiones; SDK se detendrá hasta el reinicio |
Escenarios de logs de ejemplo
Sección titulada “Escenarios de logs de ejemplo”Para ayudarte a entender qué indican los logs, aquí tienes secuencias de ejemplo que muestran flujos reales de actualización en dispositivos:
Flujo de actualización exitoso
Sección titulada “Flujo de actualización exitoso”Así es como se ve una actualización correcta en tus logs:
| Hora | Device ID | Acción | Versión | Qué significa |
|---|---|---|---|---|
| 10:00:01 | a1b2c3d4 | get | 1.2.0 | El dispositivo comprobó actualizaciones y recibió la información de la versión 1.2.0 |
| 10:00:02 | a1b2c3d4 | download_10 | 1.2.0 | Descarga iniciada, 10% completado |
| 10:00:03 | a1b2c3d4 | download_50 | 1.2.0 | Descarga al 50% |
| 10:00:05 | a1b2c3d4 | download_complete | 1.2.0 | Descarga finalizada con éxito |
| 10:00:06 | a1b2c3d4 | set | 1.2.0 | Bundle instalado y activado |
El dispositivo ya está actualizado
Sección titulada “El dispositivo ya está actualizado”Cuando un dispositivo comprueba pero ya tiene la última versión:
| Hora | Device ID | Acción | Versión | Qué significa |
|---|---|---|---|---|
| 14:30:00 | e5f6g7h8 | noNew | 1.2.0 | El dispositivo ya tiene la última versión, no requiere actualización |
Actualización fallida con rollback
Sección titulada “Actualización fallida con rollback”Cuando una actualización falla y el dispositivo hace rollback:
| Hora | Device ID | Acción | Versión | Qué significa |
|---|---|---|---|---|
| 11:15:00 | i9j0k1l2 | get | 1.3.0 | El dispositivo recibió la info de la actualización |
| 11:15:02 | i9j0k1l2 | download_complete | 1.3.0 | Descarga completada |
| 11:15:03 | i9j0k1l2 | set | 1.3.0 | El bundle se configuró |
| 11:15:10 | i9j0k1l2 | update_fail | 1.3.0 | La app se bloqueó o notifyAppReady() no se llamó - se activó el rollback |
| 11:15:11 | i9j0k1l2 | reset | integrado | El dispositivo volvió a la versión integrada |
Acción requerida: Comprueba que tu app llama a notifyAppReady() tras la inicialización correcta. Consulta la documentación del plugin para más detalles.
Error de descarga
Sección titulada “Fallo de descarga”Cuando hay problemas de red al descargar:
| Hora | Device ID | Acción | Versión | Qué significa |
|---|---|---|---|---|
| 09:45:00 | m3n4o5p6 | get | 1.2.0 | El dispositivo recibió la info de la actualización |
| 09:45:01 | m3n4o5p6 | download_30 | 1.2.0 | Descarga iniciada pero… |
| 09:45:15 | m3n4o5p6 | download_fail | 1.2.0 | Error en la descarga (timeout, pérdida de conexión, etc.) |
Acción requerida: El dispositivo reintentará automáticamente al abrir la app. No requiere acción a menos que sea frecuente.
Límite del plan alcanzado
Sección titulada “Límite del plan alcanzado”Cuando tu cuenta alcanza el límite de dispositivos:
| Hora | Device ID | Acción | Versión | Qué significa |
|---|---|---|---|---|
| 16:00:00 | q7r8s9t0 | needPlanUpgrade | - | Este dispositivo no recibirá actualizaciones hasta que subas de plan o se reinicie el ciclo de facturación |
Acción requerida: Mejora tu plan o espera al próximo ciclo de facturación.
Configuración de canal que bloquea las actualizaciones
Sección titulada “Configuración de canal que bloquea actualizaciones”Cuando la configuración del canal impide una actualización:
| Hora | Device ID | Acción | Versión | Qué significa |
|---|---|---|---|---|
| 12:00:00 | u1v2w3x4 | disableAutoUpdateToMajor | 2.0.0 | El dispositivo en v1.x no puede actualizarse automáticamente a v2.x (salto de versión mayor bloqueado) |
| 12:05:00 | y5z6a7b8 | disableEmulator | 1.2.0 | Se detectó un emulador y el canal bloquea emuladores |
| 12:10:00 | c9d0e1f2 | disableDevBuild | 1.2.0 | Dev build detected, and channel blocks dev builds |
Acción requerida: Estas son protecciones intencionales. Si deseas permitir estas actualizaciones, modifica tu configuración de canal.
Códigos de log (Capgo backend enum)
Sección titulada “Códigos de registro (enum del backend Capgo)”Estos códigos provienen del stats_action enum utilizado por el dashboard API (capgo/src/types/supabase.types.ts). Si ves un nuevo code en la interfaz, fue emitido por el SDK o el backend y validado contra esta lista.
Flujo correcto & ciclo de vida
| Code(s) | Significado |
|---|---|
get | El dispositivo solicitó a Capgo el bundle vinculado a su canal |
download_manifest_start, download_manifest_complete | Descarga delta iniciada / finalizada (para bundles subidos con archivos delta) |
download_zip_start, download_zip_complete | Descarga del archivo Zip iniciada / finalizada |
download_10 … download_90 | Hitos del progreso de descarga |
download_0 | Marcador de 0% para el primer evento de progreso |
download_complete | Bundle descargado por completo |
set | Bundle preparado para el próximo arranque |
reset | El dispositivo volvió al bundle integrado |
delete | Bundle eliminado del almacenamiento local |
uninstall | Desinstalación de la app detectada |
app_moved_to_foreground, app_moved_to_background | App lifecycle events recorded by SDK |
ping | Comprobación de estado/latido desde el dispositivo |
setChannel, getChannel | Channel sobrescrito u obtenido vía llamada a SDK |
Nuevo fix rápido para policy-block / throttle
Sección titulada “Nuevo fix rápido para policy-block / throttle”| Code | Por qué ocurre | Qué hacer a continuación |
|---|---|---|
invalidIp | Capgo detectó tráfico que parece de bot (IP de Google/infraestructura cloud). | Ignóralo si son usuarios reales; reintenta desde dispositivos reales y redes normales, o vuelve a comprobarlo más tarde. |
needPlanUpgrade | Organization reached plan/device limit. | Mejora tu plan en el dashboard o espera al próximo ciclo de facturación. |
semver_error | Falta la versión de la app nativa en la config o no es un semver válido (x.y.z). | Configurar plugins.CapacitorUpdater.version a un semver válido, luego verifícalo en el Probador de SemVer y vuelve a compilar la app. |
disablePlatformIos | iOS está desactivado en la política del canal. | Si fue un error, activa iOS en ese canal y vuelve a publicar el routing. Si bloqueaste iOS a propósito en este track, mantenlo desactivado y mueve los builds de iOS a un canal separado. |
disablePlatformAndroid | Android está desactivado en la política del canal. | Si fue un error, activa Android en ese canal y vuelve a publicar el routing. Si bloqueaste Android a propósito en este track, mantenlo desactivado y mueve los builds de Android a un canal separado. |
disableAutoUpdate | El modo de auto-update del canal bloquea este tipo de update. | Cambia la política de auto-update del canal (major/minor/patch/metadata/none) para permitir el rollout deseado. |
disableAutoUpdateUnderNative | El canal está configurado para bloquear updates anteriores al baseline del dispositivo. | Sube una versión igual o superior al baseline nativo, o desactiva esa protección bajo el nivel nativo. |
disableAutoUpdateMetadata | El canal requiere min_update_version metadata y la app es más antigua. | Configurar min_update_version para el bundle o release de destino desde una versión nativa más reciente. |
disableAutoUpdateToMajor | El canal bloquea saltos de versión mayor. | Mantén las versiones principales en la misma estrategia de canal, o permite saltos de versión para este track. |
disableAutoUpdateToMinor | El canal bloquea saltos de versión menor. | Mantén las versiones menores en la misma estrategia de canal o permite saltos de versión para este track. |
disableAutoUpdateToPatch | El canal bloquea saltos de patch para este flujo. | Ajusta tu ritmo de lanzamientos o permite saltos de parches en la política de canal para este track. |
disableEmulator | No se permiten actualizaciones de emulador en este canal. | Si fue un error, activa las actualizaciones de emulador en un canal de test para validarlos. Si es intencional, mantén este canal bloqueado para emuladores y usa otro canal para builds de emulador. |
disableDevBuild | Los builds de dev están bloqueados en este canal. | Si fue un error, permite actualizaciones de dev o mueve este dispositivo a un canal habilitado para dev. Si es intencional, mantén este canal restringido solo a builds de release. |
disableProdBuild | Un build de dispositivo en modo producción llamado /updates, mientras tu canal lo bloqueaba. | Si fue un error, permite las actualizaciones de producción en ese canal y vuelve a publicar. Si es intencional, mantén la restricción y envía los builds de producción al canal o build correcto. |
cannotGetBundle | Capgo no pudo generar una URL de descarga válida para el bundle seleccionado. | Vuelve a subir el bundle (con --delta si quieres archivos delta) y revisa la configuración de R2 y del bundle público. |
cannotUpdateViaPrivateChannel | La app intentó cambiarse automáticamente a un canal privado que no permite la autoasignación. | Activar allow_device_self_set en el canal o cambia a un canal público o permitido. |
channelMisconfigured | Faltan datos requeridos en la regla de auto-update del canal (version_number sin min_update_version). | Completa la configuración de esa regla o cambia a un modo de auto-update más simple. |
missingBundle | El bundle no tiene un payload descargable (falta external_url/r2_path y no hay archivos delta). | Reconstruye/reenvía la versión y verifica que el bundle tenga contenido de archivo real. |
NoChannelOrOverride | Ningún canal coincidió con este dispositivo (sin predeterminado en la nube + sin fallback de config + sin override). | Configura un canal predeterminado en el dashboard o mantén una prueba defaultChannel en ese build. |
rateLimited | Demasiadas llamadas de update/canal en poco tiempo (a menudo render-loop setChannel/getChannel). | Deja de llamar en render. Solo llama con acción del usuario. Usa defaultChannel en capacitor.config. |
keyMismatch | Los IDs de clave de cifrado de la app y el bundle difieren (device_key_id vs bundle_key_id). | En la consola, compara los IDs de clave del dispositivo y el bundle. Si difieren, publica con la misma clave y la versión de CLI/plugin correspondiente; la codificación de la clave puede variar entre versiones. |
disableDevice | Un teléfono/tablet real fue bloqueado porque este canal está configurado para bloquear dispositivos reales. | Si fue accidental, activa las actualizaciones en dispositivos reales en ese canal. Si fue intencional, mantén el bloqueo y dirige los dispositivos reales a otro canal. |
disablePlatformElectron | Electron está bloqueado en este canal. | Si fue un error, habilita Electron en este canal y vuelve a publicar el routing. Si es intencional, mantenlo bloqueado y envía a los usuarios de Electron a un canal dedicado. |
customIdBlocked | Se envió un ID de dispositivo personalizado, pero esta app no acepta IDs personalizados. | Desactiva el envío de IDs personalizados o habilítalos solo si tu flujo de trabajo lo requiere. |
blocked_by_server_url | La app tiene server.url configurado, por lo que Capacitor sirve la URL remota en lugar de archivos locales. | Elimina o limpia server.url para builds de producción y mantén los payloads de actualización locales. |
backend_refusal | El updater es v4, que el backend ya no acepta. | Actualiza el plugin/CLI a v5+ (preferido) v8), con Capacitor v5+, luego reconstruye y republica los metadatos del bundle. |
| Bloqueos por configuración o política |
| Code(s) | Por qué se bloqueó la actualización |
|---|---|
disableAutoUpdate, disableAutoUpdateToMajor, disableAutoUpdateToMinor, disableAutoUpdateToPatch, disableAutoUpdateMetadata, disableAutoUpdateUnderNative | La estrategia del canal lo prohíbe salto de semver |
disablePlatformIos, disablePlatformAndroid | La plataforma está deshabilitada en el canal |
disableDevBuild, disableEmulator | No se permiten builds de desarrollo ni emuladores |
disableProdBuild, disableDevice, disablePlatformElectron | Los builds de producción, dispositivos reales o Electron están bloqueados para este canal. |
customIdBlocked | No se aceptan IDs de dispositivo personalizados para esta app. |
cannotUpdateViaPrivateChannel, NoChannelOrOverride, channelMisconfigured | Error al seleccionar o sobrescribir el canal |
missingBundle, cannotGetBundle | El canal apunta a un bundle que Capgo no puede servir |
needPlanUpgrade | La organización alcanzó su límite de plan/dispositivos |
Fallos de descarga / integridad / instalación
| Code(s) | Significado |
|---|---|
download_fail | Error al descargar el bundle (red o respuesta) |
download_manifest_file_fail, download_manifest_checksum_fail, download_manifest_brotli_fail | No se pudo recuperar o validar un archivo delta |
checksum_fail, checksum_required | Error de integridad o falta el checksum |
unzip_fail, directory_path_fail, canonical_path_fail, windows_path_fail | Error de validación en el sistema de archivos o unzip |
decrypt_fail | Error de descifrado (bundle encriptado) |
update_fail | Bundle instalado pero la app nunca lo llamó notifyAppReady(); rollback activado |
download_zip_* sin posteriores set | La descarga terminó pero la fase de instalación no finalizó |
Eventos de runtime / plataforma
Sección titulada “Eventos de runtime / plataforma”| Code(s) | Significado |
|---|---|
app_crash, app_crash_native | Eventos de crash de las capas de JavaScript o del runtime nativo. Los metadatos suelen incluir el stack, el origen y la versión activa. |
app_anr | Android reportó un Application Not Responding. |
app_killed_low_memory, app_killed_excessive_resource_usage | Terminación del proceso de la app por límites de memoria o recursos. |
app_initialization_failure, app_memory_warning | El arranque se interrumpió o se detectó presión de memoria antes del runtime normal. |
webview_javascript_error, webview_unhandled_rejection, webview_resource_error, webview_security_policy_violation, webview_unclean_restart, webview_render_process_gone, webview_content_process_terminated | Ciclo de vida de WebView y errores de JS/renderizado. Instala Sentry tanto en la capa JS como en la nativa para capturar stack traces, contexto de sesión/dispositivo y URL/estado y corregir más rápido. |
os_version_changed, native_app_version_changed | El SO o la versión de la app nativa cambiaron; esto ayuda a separar los efectos del rollout a nivel de plataforma del comportamiento del web bundle. |
➡️ ¿Necesitas una guía más detallada por code? Consulta Guía de depuración y referencia completa de logs de Code.
Obtener más detalles sobre un log
Sección titulada “Obtener más detalles sobre un log”Si haces clic en una entrada de log concreta, normalmente te llevará a la página del dispositivo. Esto te permite ver el historial completo de ese dispositivo, lo cual es muy útil para diagnosticar problemas específicos o entender su recorrido de actualizaciones.
Continuar desde Logs
Sección titulada “Continuar desde Logs”Si estás usando Logs para planificar las operaciones del dashboard y de API, conéctalo con Resumen de API para los detalles de implementación en API Overview, Introducción para los detalles de implementación en la Introducción, Claves de API para el detalle de implementación en API Keys, Dispositivos para el detalle de implementación en Devices, y Bundles para el detalle de implementación en Bundles.