Logs
Copiez un prompt de configuration incluant les étapes d'installation et le guide markdown complet pour ce plugin.
Logs et analyse des logs
Section intitulée « Logs et analyses des logs »L’application Logs tab opens Analyse des logs par défaut. Utilisez Insights pour prioriser les catégories, versions et appareils sur une période de 1, 3, 7 ou 30 jours. Passez à l’onglet Logs quand vous avez besoin des événements bruts des appareils, des filtres et des horodatages décrits ci-dessous.
Comprendre les logs applicatifs
Section intitulée « Comprendre les logs d’application »Le sous-onglet Logs bruts fournit un historique détaillé des événements de mise à jour et des informations de diagnostic pour votre application. Il est utile pour confirmer les preuves au niveau de l’appareil derrière un Insight, dépanner un chemin de mise à jour et comprendre comment les appareils interagissent avec Capgo. Ouvrez une app, choisissez Logs, puis choisissez le Logs sous-onglet.

L’interface Logs bruts comprend :
- Sous-onglet Logs — le contrôle de navigation pour les lignes de logs individuelles.
- Bouton de rechargement — actualise la liste des logs avec les dernières données.
- Filtres par période et par action — affine le flux d'événements par période et par action.
Chaque ligne affiche :
- Horodatage (UTC)
- ID de l'appareil
- Action code (ce qui s'est passé)
- Nom de la version (bundle ou
builtin)
Cliquez sur une ligne pour accéder à la page de détail de l'appareil et voir son historique complet.
Filtrer par plage de dates
Section intitulée « Filtrer par plage de dates »Vous pouvez filtrer les logs sur une période donnée avec le sélecteur de dates :

- Préréglages rapides - Sélectionnez des plages courantes : dernière heure, 3 h, 6 h ou 12 h
- Heure de début - Définir une heure de début personnalisée pour la plage
- Heure de fin - Définir une heure de fin personnalisée pour la plage
- Calendrier - Sélectionnez des dates précises à l’aide de la vue calendrier
Cliquez sur « Sélectionner » pour appliquer la plage de dates choisie, ou sur « Annuler » pour fermer le sélecteur.
Filtrer par type d'action
Section intitulée « Filtrage par type d’action »Le menu déroulant Actions permet de filtrer les logs par type d’événement spécifique :

Les filtres d’action disponibles incluent :
- Heartbeat d’appareil - Periodic health checks from devices
- Suppression de version demandée - Quand une version de bundle est supprimée
- Réinitialiser à la version par défaut - Quand un appareil revient au bundle intégré
- Version installée avec succès - Installation réussie du bundle
- Nouvelle version envoyée à l’appareil - Quand Capgo envoie une mise à jour à un appareil
- Échec de l’installation de la version - Quand l’installation du bundle échoue
Utilisez la barre de recherche en haut pour trouver rapidement des types d’actions spécifiques. Vous pouvez sélectionner plusieurs actions pour afficher les logs correspondant à l’un des types sélectionnés.
Extrait de log (données fictives)
Section intitulée « Extrait de log d’exemple (données fictives) »| Heure (UTC) | ID de l'appareil | Action | Version | Ce qu'elle vous indique |
|---|---|---|---|---|
| 2025-01-14 10:00:01 | A1B2C3 | get | 2.4.1 | L’appareil a demandé à Capgo si une mise à jour était disponible |
| 2025-01-14 10:00:03 | A1B2C3 | download_manifest_start | 2.4.1 | Téléchargement du delta lancé ; SDK va télécharger les fichiers delta modifiés |
| 2025-01-14 10:00:07 | A1B2C3 | download_40 | 2.4.1 | Téléchargement du bundle à 40 % |
| 2025-01-14 10:00:12 | A1B2C3 | download_zip_complete | 2.4.1 | Téléchargement du zip terminé |
| 2025-01-14 10:00:13 | A1B2C3 | set | 2.4.1 | Bundle installé et marqué comme le prochain à exécuter |
| 2025-01-14 10:05:00 | B9C8D7 | disableAutoUpdateToMajor | 1.9.0 | La politique du canal a bloqué un passage vers 2.x |
| 2025-01-14 10:05:05 | B9C8D7 | rateLimited | intégré | L’appareil a atteint la limite de requêtes ; SDK met en pause jusqu’au redémarrage |
Exemples de scénarios de logs
Section intitulée « Scénarios de logs d’exemple »Pour vous aider à comprendre ce que les logs vous indiquent, voici des séquences d’exemple montrant des parcours de mise à jour réels sur appareil :
Flux de mise à jour réussi
Section intitulée « Flux de mise à jour réussi »Voici à quoi ressemble une mise à jour saine dans vos logs :
| Heure | ID de l'appareil | Action | Version | Signification |
|---|---|---|---|---|
| 10:00:01 | a1b2c3d4 | get | 1.2.0 | L’appareil a vérifié les mises à jour et reçu les infos de la version 1.2.0 |
| 10:00:02 | a1b2c3d4 | download_10 | 1.2.0 | Téléchargement démarré, 10 % effectué |
| 10:00:03 | a1b2c3d4 | download_50 | 1.2.0 | Téléchargement à 50 % |
| 10:00:05 | a1b2c3d4 | download_complete | 1.2.0 | Téléchargement terminé avec succès |
| 10:00:06 | a1b2c3d4 | set | 1.2.0 | Bundle installé et activé |
L'appareil est déjà à jour
Section intitulée « Appareil déjà à jour »Lorsqu’un appareil vérifie les mises à jour mais possède déjà la dernière version :
| Heure | ID de l'appareil | Action | Version | Signification |
|---|---|---|---|---|
| 14:30:00 | e5f6g7h8 | noNew | 1.2.0 | L’appareil est déjà à la dernière version, aucune mise à jour n’est nécessaire |
Échec de la mise à jour avec rollback
Section intitulée « Échec de la mise à jour avec rollback »Lorsqu’une mise à jour échoue et que l’appareil effectue un rollback :
| Heure | ID de l'appareil | Action | Version | Signification |
|---|---|---|---|---|
| 11:15:00 | i9j0k1l2 | get | 1.3.0 | L'appareil a reçu les infos de mise à jour |
| 11:15:02 | i9j0k1l2 | download_complete | 1.3.0 | Téléchargement terminé |
| 11:15:03 | i9j0k1l2 | set | 1.3.0 | Le bundle a été défini |
| 11:15:10 | i9j0k1l2 | update_fail | 1.3.0 | L'app a crashé ou notifyAppReady() n'a pas été appelée - rollback déclenché |
| 11:15:11 | i9j0k1l2 | reset | intégré | L'appareil est revenu à la version intégrée |
Action requise : Vérifiez que votre app appelle notifyAppReady() après une initialisation réussie. Voir la documentation du plugin pour plus de détails.
Échec du téléchargement
Section intitulée « Échec du téléchargement »Lorsque des problèmes réseau empêchent le téléchargement :
| Heure | ID de l'appareil | Action | Version | Signification |
|---|---|---|---|---|
| 09:45:00 | m3n4o5p6 | get | 1.2.0 | L'appareil a reçu les infos de mise à jour |
| 09:45:01 | m3n4o5p6 | download_30 | 1.2.0 | Téléchargement démarré mais… |
| 09:45:15 | m3n4o5p6 | download_fail | 1.2.0 | Échec du téléchargement (timeout réseau, perte de connexion, etc.) |
Action requise: L'appareil réessaiera automatiquement au prochain lancement de l'app. Aucune action requise, sauf si cela se produit fréquemment.
Limite du plan atteinte
Section intitulée « Limite de plan atteinte »Lorsque votre compte atteint sa limite d’appareils :
| Heure | ID de l'appareil | Action | Version | Signification |
|---|---|---|---|---|
| 16:00:00 | q7r8s9t0 | needPlanUpgrade | - | This device won’t receive updates until you upgrade or the billing cycle resets |
Action requise: Mettre à niveau votre plan ou attendre le prochain cycle de facturation.
Configuration du canal bloquant les mises à jour
Section intitulée « Configuration du canal bloquant les mises à jour »Lorsque les paramètres du canal empêchent une mise à jour :
| Heure | ID de l'appareil | Action | Version | Signification |
|---|---|---|---|---|
| 12:00:00 | u1v2w3x4 | disableAutoUpdateToMajor | 2.0.0 | Device on v1.x can’t auto-update to v2.x (major version jump blocked) |
| 12:05:00 | y5z6a7b8 | disableEmulator | 1.2.0 | Émulateur détecté, et le canal bloque les émulateurs |
| 12:10:00 | c9d0e1f2 | disableDevBuild | 1.2.0 | Build de dev détecté, le canal bloque les builds de dev |
Action requise: Ce sont des protections intentionnelles. Si vous souhaitez autoriser ces mises à jour, modifiez votre paramètres du canal.
Codes de logs (Capgo enum backend)
Section intitulée « Codes de log (enum du backend Capgo) »Ces codes proviennent de l’ stats_action enum utilisée par le dashboard API (capgo/src/types/supabase.types.ts). Si vous voyez un nouveau code dans l’interface, il a été émis par le SDK ou le backend et validé par rapport à cette liste.
Parcours nominal & cycle de vie
| Code(s) | Signification |
|---|---|
get | L’appareil a demandé à Capgo le bundle lié à son canal |
download_manifest_start, download_manifest_complete | Début / fin du téléchargement delta (pour les bundles uploadés avec des fichiers delta) |
download_zip_start, download_zip_complete | Début / fin du téléchargement de l’archive Zip |
download_10 … download_90 | Jalons de progression du téléchargement |
download_0 | Marqueur de progression à 0 % pour le premier événement de progression |
download_complete | Bundle entier téléchargé |
set | Bundle mis en attente pour le prochain lancement |
reset | Appareil revenu au bundle intégré |
delete | Bundle supprimé du stockage local |
uninstall | Désinstallation de l’app détectée |
app_moved_to_foreground, app_moved_to_background | App lifecycle events recorded by SDK |
ping | Vérification d’état / heartbeat depuis l’appareil |
setChannel, getChannel | Canal remplacé ou récupéré via un appel SDK |
Nouveau correctif rapide policy-block / throttle
Section titled “New policy-block / throttle quick fix”| Code | Pourquoi cela arrive | Que faire ensuite |
|---|---|---|
invalidIp | Capgo a détecté un trafic qui semble provenir de bots (IP Google/infrastructure cloud). | À ignorer sur les vrais utilisateurs ; réessayez depuis de vrais appareils et des réseaux normaux, ou vérifiez plus tard. |
needPlanUpgrade | L’organisation a atteint la limite de plan/appareils. | Upgrade plan in dashboard or wait for next billing cycle. |
semver_error | La version de l'app native dans la config est manquante ou n'est pas un semver valide (x.y.z). | Définissez plugins.CapacitorUpdater.version vers un semver valide, puis vérifiez-le dans le testeur SemVer et recompilez l'app. |
disablePlatformIos | iOS est désactivé dans la politique du canal. | Si c’est accidentel, activez iOS dans ce canal et republiez le routage. Si vous bloquez volontairement iOS sur cette piste, laissez-le désactivé et déplacez les builds iOS vers un canal séparé. |
disablePlatformAndroid | Android est désactivé dans la politique du canal. | Si c’est accidentel, activez Android dans ce canal et republiez le routage. Si vous bloquez volontairement Android sur cette piste, laissez-le désactivé et déplacez les builds Android vers un canal séparé. |
disableAutoUpdate | Le mode de mise à jour automatique du canal bloque ce type de mise à jour. | Modifiez la politique de mise à jour automatique du canal (major/minor/patch/metadata/none) pour autoriser le déploiement prévu. |
disableAutoUpdateUnderNative | Channel is set to block updates older than the device baseline. | Publiez une version égale ou supérieure à la version native de référence, ou désactivez cette protection sous-native. |
disableAutoUpdateMetadata | Le canal exige min_update_version des métadonnées et l’application est plus ancienne. | Définissez min_update_version pour le bundle cible ou la release d’une version native plus récente. |
disableAutoUpdateToMajor | Le canal bloque les sauts de version majeure. | Gardez les versions majeures dans la même stratégie de canal, ou autorisez les sauts majeurs pour ce canal. |
disableAutoUpdateToMinor | Le canal bloque les sauts de version mineure. | Gardez les versions mineures dans la même stratégie de canal, ou autorisez les sauts mineurs pour ce canal. |
disableAutoUpdateToPatch | Le canal bloque les sauts de patch pour ce flux. | Alignez votre cadence de release, ou autorisez les sauts de patch dans la politique de ce canal. |
disableEmulator | Les mises à jour sur émulateur ne sont pas autorisées pour ce canal. | Si c’était accidentel, activez les mises à jour sur émulateur dans un canal de test où vous validez les émulateurs. Si c’est intentionnel, gardez ce canal bloqué pour les émulateurs et utilisez un autre canal pour les builds pour émulateur. |
disableDevBuild | Les builds dev sont bloqués pour ce canal. | Si c’était accidentel, autorisez les mises à jour dev ou déplacez cet appareil vers un canal autorisant les builds dev. Si c’est intentionnel, gardez ce canal limité aux builds de release. |
disableProdBuild | Un build sur appareil en mode production a appelé /updates, alors que votre canal le bloquait. | Si c’était accidentel, autorisez les mises à jour de production sur ce canal et republiez. Si c’est intentionnel, conservez la restriction et envoyez les builds de production vers le canal/build approprié. |
cannotGetBundle | Capgo n’a pas pu générer une URL de téléchargement valide pour le bundle sélectionné. | Re-uploadez le bundle (avec --delta si vous voulez des fichiers delta) et vérifiez les paramètres R2/bundle public. |
cannotUpdateViaPrivateChannel | L’app a tenté de basculer elle-même vers un canal privé qui n’autorise pas l’auto-attribution. | Activer allow_device_self_set sur le canal ou basculez vers un canal public/autorisé. |
channelMisconfigured | Channel auto-update rule is missing required data (version_number sans min_update_version). | Complétez la configuration manquante pour cette règle ou passez à un mode d'auto-update plus simple. |
missingBundle | Le bundle n’a pas de payload téléchargeable (manque de external_url/r2_path et aucun fichier delta). | Rebuild/re-upload the version and verify the bundle has real file content. |
NoChannelOrOverride | Aucun canal ne correspond à cet appareil (pas de défaut cloud + pas de repli de config + pas de surcharge). | Définissez un canal par défaut dans le dashboard ou conservez un test defaultChannel dans ce build. |
rateLimited | Trop d'appels update/canal en peu de temps (souvent boucle de rendu setChannel/getChannel). | Arrêtez d'appeler dans le rendu. N'appelez que sur action utilisateur. Utilisez defaultChannel dans capacitor.config. |
keyMismatch | Les IDs de clés de chiffrement de l'app et du bundle diffèrent (device_key_id vs bundle_key_id). | Dans la console, comparez les IDs de clés de l'appareil et du bundle. S'ils diffèrent, publiez avec la même clé et la version correspondante de CLI/plugin ; l'encodage de la clé peut varier selon les versions. |
disableDevice | Un vrai téléphone/tablette a été bloqué car ce canal est configuré pour bloquer les appareils réels. | En cas d’erreur, activez les mises à jour sur appareil réel dans ce canal. Si c’est volontaire, laissez-le bloqué et orientez les appareils réels vers un autre canal. |
disablePlatformElectron | Electron est bloqué dans ce canal. | Si c’est accidentel, activez Electron dans ce canal et republiez le routage. Si c’est intentionnel, gardez-le bloqué et orientez les utilisateurs Electron vers un canal dédié. |
customIdBlocked | A custom device ID was sent, but this app does not accept custom IDs. | Désactivez l’envoi d’identifiants personnalisés ou activez-les uniquement si votre workflow l’exige. |
blocked_by_server_url | L’application a server.url configurée, Capacitor sert donc l’URL distante au lieu des fichiers locaux. | Supprimez/videz server.url pour les builds de production et gardez les charges de mise à jour locales. |
backend_refusal | Le live update est v4, ce que le backend n’accepte plus. | Mettez à niveau le plugin/CLI vers v5+ (préférez v8), avec Capacitor v5+, puis reconstruisez et republiez les métadonnées du bundle. |
| Blocages de configuration ou de politique |
| Code (s) | Pourquoi la mise à jour a été bloquée |
|---|---|
disableAutoUpdate, disableAutoUpdateToMajor, disableAutoUpdateToMinor, disableAutoUpdateToPatch, disableAutoUpdateMetadata, disableAutoUpdateUnderNative | La stratégie du canal l'interdit saut de semver |
disablePlatformIos, disablePlatformAndroid | La plateforme est désactivée sur ce canal |
disableDevBuild, disableEmulator | Builds de dev ou émulateurs non autorisés |
disableProdBuild, disableDevice, disablePlatformElectron | Les builds de production, les appareils réels ou Electron sont bloqués pour ce canal. |
customIdBlocked | Custom device IDs are not accepted for this app. |
cannotUpdateViaPrivateChannel, NoChannelOrOverride, channelMisconfigured | Échec de la sélection ou du remplacement du canal |
missingBundle, cannotGetBundle | Le canal pointe vers un bundle que Capgo ne peut pas servir |
needPlanUpgrade | L'organisation a atteint la limite d'appareils de son plan |
Échecs de téléchargement / d'intégrité / d'installation
| Code (s) | Signification |
|---|---|
download_fail | Échec du téléchargement du bundle (erreur réseau ou de réponse) |
download_manifest_file_fail, download_manifest_checksum_fail, download_manifest_brotli_fail | Impossible de récupérer ou de valider un fichier delta |
checksum_fail, checksum_required | Échec du contrôle d'intégrité ou checksum manquant |
unzip_fail, directory_path_fail, canonical_path_fail, windows_path_fail | File system or unzip validation failed |
decrypt_fail | Échec du déchiffrement (bundle chiffré) |
update_fail | Bundle installé mais aucun appel de l'app notifyAppReady(); rollback déclenché |
download_zip_* sans événement ultérieur set | Téléchargement terminé, mais la phase d’installation n’a jamais abouti |
Événements runtime / plateforme
Section intitulée « Événements runtime / plateforme »| Code(s) | Signification |
|---|---|
app_crash, app_crash_native | Événements de crash issus des couches JavaScript ou du runtime natif. Les métadonnées incluent souvent la stack, la source et la version active. |
app_anr | Android a signalé une application qui ne répond pas. |
app_killed_low_memory, app_killed_excessive_resource_usage | Arrêt du processus de l’application dû à des limites de mémoire ou de ressources. |
app_initialization_failure, app_memory_warning | Démarrage interrompu ou pression mémoire détectée avant l’exécution normale. |
webview_javascript_error, webview_unhandled_rejection, webview_resource_error, webview_security_policy_violation, webview_unclean_restart, webview_render_process_gone, webview_content_process_terminated | Cycle de vie du WebView et erreurs JS/rendu. Installez Sentry dans les couches JS et natives pour capturer les stack traces, le contexte session/appareil et l’URL/état, afin d’accélérer les correctifs. |
os_version_changed, native_app_version_changed | Changement de version de l’OS ou de l’app native ; permet de distinguer les effets du déploiement au niveau de la plateforme du comportement du bundle web. |
➡️ Besoin de conseils plus détaillés par code ? Voir Référence complète des logs Code et guide de débogage.
Obtenir plus de détails sur un log
Section intitulée « Obtenir plus de détails sur un log »Si vous cliquez sur une entrée de log spécifique, vous serez généralement redirigé vers la page de l’appareil. Cela vous permet de consulter l’historique complet de cet appareil en particulier, ce qui est très utile pour diagnostiquer des problèmes spécifiques à l’appareil ou comprendre son parcours de mise à jour.
Continuer depuis les logs
Section intitulée « Poursuivre depuis les logs »Si vous utilisez Logs pour planifier les opérations du dashboard et de API, connectez-l’avec Aperçu de API pour les détails d'implémentation dans « Vue d'ensemble de API », Introduction pour les détails d'implémentation dans l'introduction, Clés API pour les détails d'implémentation dans API Keys, Appareils pour les détails d'implémentation dans Devices, et Les bundles pour les détails d'implémentation dans Bundles.