Zum Inhalt springen

Logs

Die App Logs Tab öffnet sich Log-Insights standardmäßig. Nutze Insights, um Kategorien, Versionen und Geräte für Zeiträume von 1, 3, 7 oder 30 Tagen zu priorisieren. Wechsle zum Logs Subtab, wenn du die unten beschriebenen zugrunde liegenden Device-Events, Filter und Timestamps benötigst.

Der Unterreiter Raw Logs bietet eine detaillierte Historie der Update-Events und Diagnoseinformationen für deine App. Er ist hilfreich, um Belege auf Geräteebene für ein Insight zu bestätigen, Update-Pfade zu troubleshooten und zu verstehen, wie Geräte mit Capgo interagieren. Öffne eine App, wähle Logs, und wähle dann den Logs subtab.

Übersicht des Raw Logs-Tabs mit der Hauptoberfläche
Raw Logs Tab

Die Raw Logs-Oberfläche enthält:

  1. Logs-Unterreiter — die Navigationssteuerung für einzelne Log-Zeilen.
  2. Reload-Button — aktualisiert die Log-Liste mit den neuesten Daten.
  3. Zeitraum- und Aktionsfilter — grenzt den Event-Stream nach Zeit und Aktion ein.

Jede Zeile zeigt:

  • Zeitstempel (UTC)
  • Geräte-ID
  • Aktion code (was passiert ist)
  • Versionsname (Bundle oder builtin)

Klicke auf eine Zeile, um zur Detailseite des Geräts mit der vollständigen Historie zu gelangen.

Du kannst die Logs über den Date Picker nach einem bestimmten Zeitraum filtern:

Zeitraum-Picker zum Filtern der Logs
Zeitraum-Filter
  1. Schnellauswahl - Wähle gängige Zeiträume: Letzte 1h, 3h, 6h oder 12h
  2. Startzeit - Lege eine benutzerdefinierte Startzeit fest
  3. Endzeit - Lege eine benutzerdefinierte Endzeit fest
  4. Kalender - Bestimme Daten über die Kalenderansicht

Klicke auf „Select“, um den Zeitraum anzuwenden, oder auf „Cancel“, um den Picker zu schließen.

Mit dem Actions-Dropdown kannst du Logs nach bestimmten Ereignistypen filtern:

Actions-Filter-Dropdown zum Filtern von Logs nach Ereignistyp
Actions-Filter

Folgende Aktionsfilter stehen zur Verfügung:

  • Device-Heartbeat - Regelmäßige Health Checks der Geräte
  • Löschung der Version angefordert - Wenn eine Bundle-Version gelöscht wird
  • Auf Standardversion zurücksetzen - Wenn ein Gerät zum Builtin-Bundle zurückkehrt
  • Version erfolgreich installiert - Erfolgreiche Bundle-Installation
  • Neue Version an Gerät gesendet - Wenn Capgo ein Update an ein Gerät sendet
  • Versionsinstallation fehlgeschlagen - Wenn die Bundle-Installation fehlschlägt

Nutze das Suchfeld oben, um schnell bestimmte Aktionstypen zu finden. Du kannst mehrere Aktionen auswählen, um Logs anzuzeigen, die zu einem der ausgewählten Typen passen.

Zeit (UTC)Geräte-IDAktionVersionWas sie aussagt
2025-01-14 10:00:01A1B2C3get2.4.1Gerät hat Capgo gefragt, ob ein Update verfügbar ist
2025-01-14 10:00:03A1B2C3download_manifest_start2.4.1Delta-Download gestartet; SDK lädt jetzt die geänderten Delta-Dateien herunter
2025-01-14 10:00:07A1B2C3download_402.4.1Bundle-Download zu 40 % abgeschlossen
2025-01-14 10:00:12A1B2C3download_zip_complete2.4.1Zip-Download abgeschlossen
2025-01-14 10:00:13A1B2C3set2.4.1Bundle installiert und als Nächstes auszuführen markiert
2025-01-14 10:05:00B9C8D7disableAutoUpdateToMajor1.9.0Channel-Policy hat einen Sprung auf 2.x blockiert
2025-01-14 10:05:05B9C8D7rateLimitedbuiltinGerät hat das Request-Limit erreicht; SDK pausiert bis zum Neustart

Um die Logs besser interpretieren zu können, findest du hier Beispielsequenzen, die typische Update-Vorgänge auf echten Geräten zeigen:

So sieht ein reibungsloser Update-Prozess in deinen Logs aus:

ZeitpunktGeräte-IDAktionVersionWhat it means
10:00:01a1b2c3d4get1.2.0Gerät auf Updates geprüft, Version 1.2.0 erhalten
10:00:02a1b2c3d4download_101.2.0Download gestartet, 10 % abgeschlossen
10:00:03a1b2c3d4download_501.2.0Download bei 50 %
10:00:05a1b2c3d4download_complete1.2.0Download erfolgreich abgeschlossen
10:00:06a1b2c3d4set1.2.0Bundle installiert und aktiviert

Gerät bereits auf dem neuesten Stand

Abschnitt „Gerät bereits auf dem neuesten Stand“

Wenn ein Gerät prüft, aber bereits die neueste Version hat:

ZeitpunktGeräte-IDAktionVersionWhat it means
14:30:00e5f6g7h8noNew1.2.0Gerät ist bereits auf dem neuesten Stand, kein Update nötig

Wenn ein Update fehlschlägt und das Gerät ein Rollback durchführt:

ZeitpunktGeräte-IDAktionVersionWhat it means
11:15:00i9j0k1l2get1.3.0Gerät hat Update-Infos erhalten
11:15:02i9j0k1l2download_complete1.3.0Download abgeschlossen
11:15:03i9j0k1l2set1.3.0Bundle wurde gesetzt
11:15:10i9j0k1l2update_fail1.3.0App ist abgestürzt oder notifyAppReady() wurde nicht aufgerufen – Rollback ausgelöst
11:15:11i9j0k1l2resetintegriertGerät wurde auf die Built-in-Version zurückgesetzt

Erforderliche Aktion: Prüfe, ob deine App aufruft notifyAppReady() nach erfolgreicher Initialisierung. Siehe die Plugin-Dokumentation für Details.

Wenn Netzwerkprobleme den Download verhindern:

ZeitpunktGeräte-IDAktionVersionWhat it means
09:45:00m3n4o5p6get1.2.0Gerät hat Update-Infos erhalten
09:45:01m3n4o5p6download_301.2.0Download gestartet, aber...
09:45:15m3n4o5p6download_fail1.2.0Download fehlgeschlagen (Timeout, Verbindungsabbruch, etc.)

Erforderliche Aktion: Das Gerät versucht es beim nächsten App-Start automatisch erneut. Kein Handeln erforderlich, außer dies tritt häufig auf.

Wenn Ihr Account das Geräte-Limit erreicht:

ZeitpunktGeräte-IDAktionVersionWhat it means
16:00:00q7r8s9t0needPlanUpgrade-Dieses Gerät erhält keine Updates, bis Sie upgraden oder der Abrechnungszyklus zurückgesetzt wird

Erforderliche Aktion: Plan upgraden oder auf den nächsten Abrechnungszyklus warten.

Channel-Konfiguration blockiert Updates

Abschnitt: „Channel-Konfiguration blockiert Updates“

Wenn die Channel-Einstellungen ein Update verhindern:

ZeitpunktGeräte-IDAktionVersionWhat it means
12:00:00u1v2w3x4disableAutoUpdateToMajor2.0.0Gerät auf v1.x kann nicht automatisch auf v2.x updaten (Major-Version-Sprung blockiert)
12:05:00y5z6a7b8disableEmulator1.2.0Emulator erkannt; Channel blockiert Emulatoren
12:10:00c9d0e1f2disableDevBuild1.2.0Dev-Build erkannt; Channel blockiert Dev-Builds

Erforderliche Aktion: Dies sind beabsichtigte Schutzmaßnahmen. Um diese Updates zu erlauben, ändere deine Channel-Einstellungen.

Diese Codes stammen aus dem stats_action Enum, das vom Dashboard API genutzt wird (capgo/src/types/supabase.types.ts). Wenn ein neuer code in der UI auftaucht, wurde er vom SDK oder vom Backend emittiert und gegen diese Liste validiert.

Happy Path & Lifecycle

Code(s)Bedeutung
getDevice hat Capgo nach dem Bundle für seinen Channel gefragt
download_manifest_start, download_manifest_completeDelta-Download gestartet / beendet (für Bundles, die mit Delta-Dateien hochgeladen wurden)
download_zip_start, download_zip_completeZip-Archiv-Download gestartet / beendet
download_10 … download_90Meilensteine des Downloads
download_00%-Marker für das erste Download-Event
download_completeGesamtes Bundle heruntergeladen
setBundle für den nächsten Start bereitgestellt
resetGerät auf das Builtin-Bundle zurückgesetzt
deleteBundle aus dem lokalen Speicher entfernt
uninstallApp-Deinstallation erkannt
app_moved_to_foreground, app_moved_to_backgroundApp-Lifecycle-Events aufgezeichnet durch SDK
pingHealth/Heartbeat-Check vom Gerät
setChannel, getChannelChannel via SDK Call überschrieben oder abgerufen
CodeUrsachen hierfürNächste Schritte
invalidIpCapgo hat Traffic erkannt, der wie Bot-Traffic aussieht (Google/Cloud-Infrastruktur IP).Bei echten Nutzern ignorieren; Versuche von echten Geräten und normalen Netzwerken wiederholen oder später prüfen.
needPlanUpgradeDie Organisation hat das Plan-/Gerätelimit erreicht.Upgrade im Dashboard oder beim nächsten Abrechnungszyklus.
semver_errorDie Native app version in der Config fehlt oder ist kein gültiges SemVer (x.y.z).Setzen Sie plugins.CapacitorUpdater.version zu gültigem SemVer, dann im SemVer Tester verifizieren und die App neu bauen.
disablePlatformIosiOS ist in der Channel-Policy deaktiviert.Falls dies ein Versehen war, aktiviere iOS in diesem Channel und veröffentliche das Routing neu. Wenn du iOS in diesem Track absichtlich blockierst, lass es deaktiviert und verschiebe iOS-Builds in einen separaten Channel.
disablePlatformAndroidAndroid ist in der Channel-Policy deaktiviert.Falls dies ein Versehen war, aktiviere Android in diesem Channel und veröffentliche das Routing neu. Wenn du Android in diesem Track absichtlich blockierst, lass es deaktiviert und verschiebe Android-Builds in einen separaten Channel.
disableAutoUpdateDer Auto-Update-Modus des Channels blockiert diesen Update-Typ.Ändere die Channel-Auto-Update-Policy (major/minor/patch/metadata/none), um deinen Rollout zu ermöglichen.
disableAutoUpdateUnderNativeDer Channel blockiert Updates, die älter als die Native-Baseline des Geräts sind.Pushe eine Version, die auf oder über der Native-Baseline liegt, oder deaktiviere diesen Under-Native-Schutz.
disableAutoUpdateMetadataChannel erfordert min_update_version Metadata; die App ist veraltet.Setzen Sie min_update_version für das Ziel-Bundle oder Release aus einer neueren Native-Version.
disableAutoUpdateToMajorDer Channel blockiert Major-Version-Sprünge.Halten Sie Major-Versionen in derselben Channel-Strategie oder erlauben Sie Major-Sprünge für diesen Track.
disableAutoUpdateToMinorDer Channel blockiert Minor-Version-Sprünge.Halten Sie Minor-Versionen in derselben Channel-Strategie oder erlauben Sie Minor-Sprünge für diesen Track.
disableAutoUpdateToPatchDer Channel blockiert Patch-Level-Sprünge für diesen Flow.Passen Sie Ihren Release-Rhythmus an oder erlauben Sie Patch-Sprünge in der Channel-Policy für diesen Track.
disableEmulatorEmulator-Updates sind für diesen Channel nicht erlaubt.Falls dies versehentlich geschah: Aktivieren Sie Emulator-Updates in einem Test-Channel zur Validierung. Falls beabsichtigt: Lassen Sie diesen Channel für Emulatoren gesperrt und nutzen Sie einen anderen Channel für Emulator-Builds.
disableDevBuildDev-Builds sind für diesen Channel blockiert.Falls dies versehentlich geschah: Erlauben Sie Dev-Updates oder verschieben Sie das Gerät in einen Dev-fähigen Channel. Falls beabsichtigt: Lassen Sie diesen Channel auf Release-Builds beschränkt.
disableProdBuildEin Device-Build im Production-Modus namens /updates, während Ihr Channel ihn blockiert hat.Falls dies ein Versehen war, erlaube Production-Updates für diesen Channel und veröffentliche ihn erneut. Falls dies beabsichtigt war, behalte die Einschränkung bei und sende Production-Builds in den richtigen Channel/Build.
cannotGetBundleCapgo konnte keine gültige Download-URL für das ausgewählte Bundle erstellen.Lade das Bundle erneut hoch (mit --delta falls du Delta-Files nutzen möchtest) und prüfe die R2/Public-Bundle-Einstellungen.
cannotUpdateViaPrivateChannelDie App hat versucht, selbstständig in einen privaten Channel zu wechseln, der kein Self-Assignment erlaubt.Aktivieren allow_device_self_set auf dem Channel oder wechsle zu einem öffentlichen/erlaubten Channel.
channelMisconfiguredDer Auto-Update-Rule für den Channel fehlen erforderliche Daten (version_number ohne min_update_version).Ergänze die fehlende Konfiguration für diese Rule oder wechsle zu einem einfacheren Auto-Update-Modus.
missingBundleDas Bundle enthält keinen downloadbaren Payload (fehlende external_url/r2_path und keine Delta-Files).Version neu bauen/hochladen und prüfen, ob das Bundle echten Dateiinhalt hat.
NoChannelOrOverrideKein Channel für dieses Gerät gefunden (kein Cloud-Default + kein Config-Fallback + kein Override).Setze einen Channel-Default im Dashboard oder behalte einen Test bei defaultChannel in diesem Build.
rateLimitedZu viele Update/Channel-Aufrufe in kurzer Zeit (oft Render-Loop) setChannel/getChannel).Aufrufe nicht im Render tätigen. Nur bei User-Aktion aufrufen. Nutze defaultChannel in capacitor.config.
keyMismatchDie App- und Bundle-Encryption-Key-IDs unterscheiden sich (device_key_id vs. bundle_key_id).Vergleiche in der Console die Device- und Bundle-Key-IDs. Falls sie abweichen, mit demselben Key und passender CLI/Plugin-Version veröffentlichen; Key-Encoding kann zwischen Versionen variieren.
disableDeviceEin echtes Phone/Tablet wurde blockiert, da dieser Channel für echte Geräte gesperrt ist.Falls versehentlich: Aktiviere Real-Device-Updates in diesem Channel. Falls gewollt: Blockierung beibehalten und echte Geräte auf einen anderen Channel routen.
disablePlatformElectronElectron ist in diesem Channel gesperrt.Falls dies ein Versehen war, aktiviere Electron in diesem Channel und veröffentliche das Routing neu. Falls beabsichtigt, lass es gesperrt und leite Electron-Nutzer auf einen eigenen Channel um.
customIdBlockedA custom device ID was sent, but this app does not accept custom IDs.Deaktiviere das Senden benutzerdefinierter IDs oder aktiviere sie nur, wenn dein Workflow dies erfordert.
blocked_by_server_urlDie App hat server.url konfiguriert, sodass Capacitor eine Remote-URL statt lokaler Dateien bereitstellt.Entferne/lösche server.url für Production-Builds, um die Update-Payloads lokal zu halten.
backend_refusalDer Updater ist v4, was vom Backend nicht mehr akzeptiert wird.Upgrade von plugin/CLI auf v5+ (bevorzugt v8), mit Capacitor v5+, dann Bundle-Metadaten neu bauen und erneut veröffentlichen.
Konfigurations- oder Policy-Blockaden
Code(s)Warum das Update blockiert wurde
disableAutoUpdate, disableAutoUpdateToMajor, disableAutoUpdateToMinor, disableAutoUpdateToPatch, disableAutoUpdateMetadata, disableAutoUpdateUnderNativeChannel-Strategie verbietet dies Semver-Sprung
disablePlatformIos, disablePlatformAndroidPlattform ist für diesen Channel deaktiviert
disableDevBuild, disableEmulatorDev-Builds oder Emulatoren nicht erlaubt
disableProdBuild, disableDevice, disablePlatformElectronProduction-Builds, echte Geräte oder Electron sind für diesen Channel blockiert.
customIdBlockedCustom Device IDs werden für diese App nicht akzeptiert.
cannotUpdateViaPrivateChannel, NoChannelOrOverride, channelMisconfiguredChannel-Auswahl oder Override fehlgeschlagen
missingBundle, cannotGetBundleDer Channel zeigt auf ein Bundle, das Capgo nicht bereitstellen kann
needPlanUpgradeLimit des Plans oder der Geräte erreicht

Download-, Integritäts- oder Installationsfehler

Code(s)Bedeutung
download_failBundle-Download fehlgeschlagen (Netzwerk- oder Response-Fehler)
download_manifest_file_fail, download_manifest_checksum_fail, download_manifest_brotli_failDelta-Datei konnte nicht abgerufen oder validiert werden
checksum_fail, checksum_requiredIntegritätsprüfung fehlgeschlagen oder Checksumme fehlt
unzip_fail, directory_path_fail, canonical_path_fail, windows_path_failDateisystem- oder Unzip-Validierung fehlgeschlagen
decrypt_failDecryption failed (encrypted bundle)
update_failBundle installiert, aber App wurde nicht aufgerufen notifyAppReady(); Rollback ausgelöst
download_zip_* ohne nachfolgende setDownload abgeschlossen, aber Installation nicht beendet
Code(s)Bedeutung
app_crash, app_crash_nativeCrash-Events aus dem JavaScript- oder Native-Runtime-Layer. Metadaten enthalten oft Stack-Traces, die Quelle und die aktive Version.
app_anrAndroid meldete „Application Not Responding“.
app_killed_low_memory, app_killed_excessive_resource_usageBeendigung des App-Prozesses aufgrund von Speicher- oder Ressourcenlimits.
app_initialization_failure, app_memory_warningDer Startup wurde unterbrochen oder es wurde vor der normalen Runtime hoher Speicherverbrauch festgestellt.
webview_javascript_error, webview_unhandled_rejection, webview_resource_error, webview_security_policy_violation, webview_unclean_restart, webview_render_process_gone, webview_content_process_terminatedWebView-Lifecycle und JS/Rendering-Fehler. Installiere Sentry sowohl im JS- als auch im Native-Layer, um Stack-Traces, Session-/Device-Kontext und URL/State für schnellere Fixes zu erfassen.
os_version_changed, native_app_version_changedOS oder native App-Version hat sich geändert; dies hilft, Plattform-Rollout-Effekte von Web-Bundle-Verhalten zu unterscheiden.

➡️ Brauchst du mehr code Hilfe? Siehe Vollständige Code Log-Referenz und Debugging-Guide.

Wenn du auf einen bestimmten Log-Eintrag klickst, gelangst du normalerweise zu den Geräte-Seite. Dort siehst du die gesamte Historie dieses Geräts, was bei der Diagnose gerätespezifischer Probleme oder beim Nachvollziehen des Update-Verlaufs sehr hilfreich sein kann.

Wenn du es nutzt Logs um Dashboard- und API-Operationen zu planen, verbinde es mit API Übersicht für Details zur Implementierung im API Overview, Einführung für die Implementierungsdetails in der Einleitung, API Schlüssel für die Implementierungsdetails in API Keys, Geräte für die Implementierungsdetails in Devices und Bundles für die Implementierungsdetails in Bundles.