Aller au contenu

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.

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.

Aperçu de l’onglet Logs bruts montrant l’interface principale
Onglet Logs bruts

L’interface Logs bruts comprend :

  1. Sous-onglet Logs — le contrôle de navigation pour les lignes de logs individuelles.
  2. Bouton de rechargement — actualise la liste des logs avec les dernières données.
  3. 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.

Vous pouvez filtrer les logs sur une période donnée avec le sélecteur de dates :

Sélecteur de plage de dates pour filtrer les logs
Filtre par plage de dates
  1. Préréglages rapides - Sélectionnez des plages courantes : dernière heure, 3 h, 6 h ou 12 h
  2. Heure de début - Définir une heure de début personnalisée pour la plage
  3. Heure de fin - Définir une heure de fin personnalisée pour la plage
  4. 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.

Le menu déroulant Actions permet de filtrer les logs par type d’événement spécifique :

Menu déroulant du filtre Actions pour filtrer les logs par type d’événement
Filtre Actions

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.

Heure (UTC)ID de l'appareilActionVersionCe qu'elle vous indique
2025-01-14 10:00:01A1B2C3get2.4.1L’appareil a demandé à Capgo si une mise à jour était disponible
2025-01-14 10:00:03A1B2C3download_manifest_start2.4.1Téléchargement du delta lancé ; SDK va télécharger les fichiers delta modifiés
2025-01-14 10:00:07A1B2C3download_402.4.1Téléchargement du bundle à 40 %
2025-01-14 10:00:12A1B2C3download_zip_complete2.4.1Téléchargement du zip terminé
2025-01-14 10:00:13A1B2C3set2.4.1Bundle installé et marqué comme le prochain à exécuter
2025-01-14 10:05:00B9C8D7disableAutoUpdateToMajor1.9.0La politique du canal a bloqué un passage vers 2.x
2025-01-14 10:05:05B9C8D7rateLimitedintégréL’appareil a atteint la limite de requêtes ; SDK met en pause jusqu’au redémarrage

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 :

Voici à quoi ressemble une mise à jour saine dans vos logs :

HeureID de l'appareilActionVersionSignification
10:00:01a1b2c3d4get1.2.0L’appareil a vérifié les mises à jour et reçu les infos de la version 1.2.0
10:00:02a1b2c3d4download_101.2.0Téléchargement démarré, 10 % effectué
10:00:03a1b2c3d4download_501.2.0Téléchargement à 50 %
10:00:05a1b2c3d4download_complete1.2.0Téléchargement terminé avec succès
10:00:06a1b2c3d4set1.2.0Bundle installé et activé

Lorsqu’un appareil vérifie les mises à jour mais possède déjà la dernière version :

HeureID de l'appareilActionVersionSignification
14:30:00e5f6g7h8noNew1.2.0L’appareil est déjà à la dernière version, aucune mise à jour n’est nécessaire

Lorsqu’une mise à jour échoue et que l’appareil effectue un rollback :

HeureID de l'appareilActionVersionSignification
11:15:00i9j0k1l2get1.3.0L'appareil a reçu les infos de mise à jour
11:15:02i9j0k1l2download_complete1.3.0Téléchargement terminé
11:15:03i9j0k1l2set1.3.0Le bundle a été défini
11:15:10i9j0k1l2update_fail1.3.0L'app a crashé ou notifyAppReady() n'a pas été appelée - rollback déclenché
11:15:11i9j0k1l2resetinté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.

Lorsque des problèmes réseau empêchent le téléchargement :

HeureID de l'appareilActionVersionSignification
09:45:00m3n4o5p6get1.2.0L'appareil a reçu les infos de mise à jour
09:45:01m3n4o5p6download_301.2.0Téléchargement démarré mais…
09:45:15m3n4o5p6download_fail1.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.

Lorsque votre compte atteint sa limite d’appareils :

HeureID de l'appareilActionVersionSignification
16:00:00q7r8s9t0needPlanUpgrade-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.

Lorsque les paramètres du canal empêchent une mise à jour :

HeureID de l'appareilActionVersionSignification
12:00:00u1v2w3x4disableAutoUpdateToMajor2.0.0Device on v1.x can’t auto-update to v2.x (major version jump blocked)
12:05:00y5z6a7b8disableEmulator1.2.0Émulateur détecté, et le canal bloque les émulateurs
12:10:00c9d0e1f2disableDevBuild1.2.0Build 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.

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
getL’appareil a demandé à Capgo le bundle lié à son canal
download_manifest_start, download_manifest_completeDébut / fin du téléchargement delta (pour les bundles uploadés avec des fichiers delta)
download_zip_start, download_zip_completeDébut / fin du téléchargement de l’archive Zip
download_10 … download_90Jalons de progression du téléchargement
download_0Marqueur de progression à 0 % pour le premier événement de progression
download_completeBundle entier téléchargé
setBundle mis en attente pour le prochain lancement
resetAppareil revenu au bundle intégré
deleteBundle supprimé du stockage local
uninstallDésinstallation de l’app détectée
app_moved_to_foreground, app_moved_to_backgroundApp lifecycle events recorded by SDK
pingVérification d’état / heartbeat depuis l’appareil
setChannel, getChannelCanal remplacé ou récupéré via un appel SDK

Nouveau correctif rapide policy-block / throttle

Section titled “New policy-block / throttle quick fix”
CodePourquoi cela arriveQue faire ensuite
invalidIpCapgo 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.
needPlanUpgradeL’organisation a atteint la limite de plan/appareils.Upgrade plan in dashboard or wait for next billing cycle.
semver_errorLa 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.
disablePlatformIosiOS 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é.
disablePlatformAndroidAndroid 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é.
disableAutoUpdateLe 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.
disableAutoUpdateUnderNativeChannel 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.
disableAutoUpdateMetadataLe 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.
disableAutoUpdateToMajorLe 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.
disableAutoUpdateToMinorLe 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.
disableAutoUpdateToPatchLe 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.
disableEmulatorLes 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.
disableDevBuildLes 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.
disableProdBuildUn 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é.
cannotGetBundleCapgo 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.
cannotUpdateViaPrivateChannelL’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é.
channelMisconfiguredChannel 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.
missingBundleLe 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.
NoChannelOrOverrideAucun 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.
rateLimitedTrop 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.
keyMismatchLes 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.
disableDeviceUn 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.
disablePlatformElectronElectron 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é.
customIdBlockedA 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_urlL’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_refusalLe 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, disableAutoUpdateUnderNativeLa stratégie du canal l'interdit saut de semver
disablePlatformIos, disablePlatformAndroidLa plateforme est désactivée sur ce canal
disableDevBuild, disableEmulatorBuilds de dev ou émulateurs non autorisés
disableProdBuild, disableDevice, disablePlatformElectronLes builds de production, les appareils réels ou Electron sont bloqués pour ce canal.
customIdBlockedCustom device IDs are not accepted for this app.
cannotUpdateViaPrivateChannel, NoChannelOrOverride, channelMisconfiguredÉchec de la sélection ou du remplacement du canal
missingBundle, cannotGetBundleLe canal pointe vers un bundle que Capgo ne peut pas servir
needPlanUpgradeL'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_failImpossible 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_failFile system or unzip validation failed
decrypt_failÉchec du déchiffrement (bundle chiffré)
update_failBundle installé mais aucun appel de l'app notifyAppReady(); rollback déclenché
download_zip_* sans événement ultérieur setTéléchargement terminé, mais la phase d’installation n’a jamais abouti
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_anrAndroid a signalé une application qui ne répond pas.
app_killed_low_memory, app_killed_excessive_resource_usageArrêt du processus de l’application dû à des limites de mémoire ou de ressources.
app_initialization_failure, app_memory_warningDé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_terminatedCycle 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_changedChangement 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.

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.

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.