Problemas comunes de actualización
Copia un prompt de configuración con los pasos de instalación y la guía completa en markdown para este plugin.
Cuando falla la comprobación de actualizaciones, Capgo suele devolver un error code y una message en la /updates respuesta. Esta página explica los fallos más comunes y sus soluciones más rápidas.
Lee esto primero
La sección titulada “Read this first”no_new_version_availablees un estado normal, no un error.- Muchos reportes de “se encontró una actualización pero no se aplicó” son rechazos por política o configuración en lugar de retrasos de caché, especialmente cuando la respuesta incluye un
errorcode. - Usa
npx @capgo/cli@latest app debugmientras reproduces el error para ver los detalles de la petición/respuesta.
Códigos de error comunes
Sección titulada “Common failure codes”provider_infrastructure_request_blocked
Sección titulada “provider_infrastructure_request_blocked”Causa
La app tiene Bloquear peticiones de infraestructura del proveedor activado y la petición proviene de un rango de IPs conocido de datacenters de Google o Apple. Capgo bloquea estas peticiones en /updates, /stats, y /channel_self para evitar que el tráfico originado por el proveedor se trate como tráfico del dispositivo.
Solución
- Reproduce la actualización desde un dispositivo físico en una red de usuario normal.
- No uses probes en la nube ni runners de datacenters de proveedores para comprobaciones de updater, stats o channel-self mientras esta protección esté activa.
- Si ese tráfico es intencionado, abre la Información pestaña y desactiva Bloqueo de peticiones a la infraestructura del proveedor. Vuelve a activarlo cuando termine la prueba.
Las apps nuevas tienen esta protección activada por defecto. Las apps creadas antes de este ajuste la mantienen desactivada hasta que la habilites.
Detalles de la respuesta
/updatesmantiene el contrato de respuesta del updater y devuelve HTTP200. Su cuerpo incluyeerror,message,kind: "blocked", yprovider("google"o"apple")./statsy/channel_selfdevuelve HTTP429con el mismo error code. Trátalo como un bloqueo de política intencional, no como un error de reintento temporal.
disable_auto_update_to_major
Sección titulada “disable_auto_update_to_major”Causa
Tu canal bloquea actualizaciones mayores (disable_auto_update = major) y la versión mayor del bundle de destino es superior a la versión base del dispositivo.
Síntoma típico
version: 1.0.8 con old: 0.0.0 significa que el dispositivo reporta baseline 0.0.0, so major upgrades are rejected.
Cómo interpretarlo
El backend compara las versiones major usando el baseline del dispositivo old y el target version.
- Si el target es
1.0.1, el major del baseline debe ser1(por ejemplo1.0.0). - Si el target es
10.0.1, el major del baseline debe ser10(por ejemplo10.0.0).
Solución A (recomendada): alinea el major del baseline del dispositivo
Configurar plugins.CapacitorUpdater.version en capacitor.config.* así que el MAJOR coincide con el MAJOR del bundle que quieres entregar (por ejemplo, 1.0.0 para 1.0.1, 10.0.0 para 10.0.1).
Luego, aplica esta configuración a la app instalada una vez:
- Ejecuta
npx cap sync. - Reconstruye y reinstala la app nativa.
Solución B: relajar la política del canal
Permite auto-updates entre diferentes versiones MAJOR en la configuración del canal (solo si esa estrategia de rollout es intencional).
Docs relacionadas:
- Version Targeting: Desactiva el Auto-Update entre versiones mayores
- Canales: desactiva estrategias de Auto Update
disable_auto_update_to_minor / disable_auto_update_to_patch
Sección titulada “disable_auto_update_to_minor / disable_auto_update_to_patch”Causa
La política del canal es más estricta (minor o patch) que la actualización ofrecida.
minorbloquea cuando el bundle de destino tiene una versión mayor o menor distinta a la base nativa del dispositivo (version_build). Ejemplo:1.2.3 -> 1.3.0está bloqueado.patchbloquea cualquier cambio en el número mayor, menor o patch desdeversion_build. Solo se permiten cambios en el sufijo mientrasMAJOR.MINOR.PATCHse mantiene idéntico, como1.0.0-beta.1 -> 1.0.0-beta.2o1.0.0+build.1 -> 1.0.0+build.2.
Solución
- Sube un bundle compatible con la política actual, o
- cambia la política del canal en dashboard/CLI.
Docs relacionadas:
disable_auto_update_to_metadata
Sección titulada “disable_auto_update_to_metadata”Causa
El canal usa segmentación basada en metadata (version_number) y el baseline del dispositivo es inferior al requerido min_update_version.
Solución
- Alinea la versión base del dispositivo (
CapacitorUpdater.version) con la versión de la app nativa instalada, o - ajusta
min_update_version/ estrategia de canales.
Docs relacionadas:
disable_auto_update_under_native
Sección titulada “disable_auto_update_under_native”Causa
El canal evita downgrades por debajo de la base nativa.
Solución
- Sube una versión de bundle mayor o igual a la base nativa, o
- desactiva la protección contra downgrade “under native” para ese canal.
Docs relacionadas:
cannot_update_via_private_channel
Sección titulada “cannot_update_via_private_channel”Causa
El canal seleccionado/predeterminado no permite la autoasignación del dispositivo.
Solución
- Usa otro canal con la autoasignación habilitada, o
- haz público el canal / habilita la autoasignación.
Docs relacionadas:
unknown_version_build / semver_error
Sección titulada “unknown_version_build / semver_error”Causa
Falta la versión base del dispositivo (unknown) o no semver válido.
Solución
- Configurar
plugins.CapacitorUpdater.versioncon una semver válido como1.2.3. - Sincroniza y reconstruye la app nativa.
Docs relacionadas:
unsupported_plugin_version
Sección titulada “unsupported_plugin_version”Causa
La versión del plugin Updater es demasiado antigua para los requisitos actuales del backend.
Solución
- Actualizar
@capgo/capacitor-updater. - Ejecuta
npx cap sync. - Reconstruye y reinstala la app nativa.
disabled_platform_ios / disabled_platform_android
Sección titulada “disabled_platform_ios / disabled_platform_android”Causa
Channel has updates disabled for that platform.
Solución
- Activa el toggle de plataforma en el channel.
disable_prod_build / disable_dev_build / disable_device / disable_emulator
Sección titulada “disable_prod_build / disable_dev_build / disable_device / disable_emulator”Causa
El canal no permite el tipo de build o el runtime target actual.
Solución
- Ajusta las opciones del channel (
allow_prod,allow_dev,allow_device,allow_emulator) con tu target de prueba.
key_id_mismatch
Sección titulada “key_id_mismatch”Causa
Bundle encryption key and device key differ.
Solución
- Usa la misma clave de cifrado/clave pública en la config de la app y en el workflow de cifrado del bundle.
no_channel / null_channel_data
Sección titulada “no_channel / null_channel_data”Causa
No se pudo resolver un canal válido para el dispositivo.
Solución
- Configura un canal por defecto en la nube, o
- configura
defaultChannelen builds de prueba, o - asigna un channel override al dispositivo.
Docs relacionadas:
on_premise_app
Sección titulada “on_premise_app”Causa
El backend devolvió HTTP 429 con on_premise_app. Esto ocurre en tres situaciones:
- El App ID no existe en Capgo — el
app_idenviado por el dispositivo no está registrado, por lo que el backend no tiene registro de él. - La app está marcada como on-premise — la app existe pero está configurada para actualizaciones self-hosted, por lo que el endpoint de la nube de Capgo rechaza servirla.
- El plan de la organización está cancelado — la organización de la app ya no tiene una suscripción activa.
Error común
A typo in plugins.CapacitorUpdater.appId (en capacitor.config.ts) o una falta de coincidencia con el app ID registrado en el dashboard de Capgo. El backend no distingue entre una “app desconocida” y una “app on-premise”, así que devuelve el mismo error code.
Solución
- Verifica el
app_idcoincide exactamente con lo que se muestra en el dashboard de Capgo (distingue mayúsculas de minúsculas). - Si la app aún no está registrada, ejecuta
npx @capgo/cli@latest app add. - Si la app es intencionalmente on-premise, establece
plugins.CapacitorUpdater.updateUrla tu endpoint de actualización self-hosted en lugar de la URL de la nube de Capgo. - Si el plan de la organización expiró, renueva o mejora el plan.
Checklist de diagnóstico rápido
Sección titulada “Checklist de diagnóstico rápido”- Confirma que el app ID y el channel son correctos para el build.
- Confirmar
CapacitorUpdater.versioncoincide con la versión de la app nativa instalada. - Confirma que la política del canal (
disable_auto_update) coincida con el despliegue previsto. - Confirma que los selectores de plataforma/build permitan este dispositivo.
- Ejecuta
npx @capgo/cli@latest app debugy lee el error del backend code.
¿Necesitas más ayuda?
Sección titulada “¿Necesitas más ayuda?”Continuar desde Problemas comunes de actualización
Sección titulada “Continuar desde Problemas Comunes de Update”Si estás usando Problemas comunes de actualización para planificar el trabajo con plugins nativos, conéctalo con Al usar @capgo/capacitor-updater para la funcionalidad nativa al usar @capgo/capacitor-updater, Directorio de plugins de Capgo para el flujo de trabajo del producto en Capgo Plugin Directory, Plugins de Capacitor por Capgo para el detalle de implementación en los Plugins de Capacitor por Capgo, Añadir o actualizar plugins para el detalle de implementación en Agregar o actualizar plugins, y Alternativas a plugins de Ionic Enterprise para el flujo de trabajo del producto en Alternativas a plugins de Ionic Enterprise.