{
  "breadcrumbs" : "[2026-08-01T14:02:49.207Z] [hang] main-thread hang >3.0s\n[2026-08-01T14:03:01.997Z] [lifecycle] keep materialization claim book=D6B822F0-E641-4D7F-8FD8-344DABB613D9\n[2026-08-01T14:03:01.999Z] [lifecycle] keep materialization asset start index=1\/1 kind=photo\n[2026-08-01T14:03:02.001Z] [lifecycle] keep materialization failure book=D6B822F0-E641-4D7F-8FD8-344DABB613D9 reason=networkUnavailable\n[2026-08-01T14:03:02.002Z] [lifecycle] keep materialization claim book=D6B822F0-E641-4D7F-8FD8-344DABB613D9\n[2026-08-01T14:03:02.003Z] [lifecycle] keep materialization asset start index=1\/1 kind=photo\n[2026-08-01T14:03:02.004Z] [lifecycle] keep materialization failure book=D6B822F0-E641-4D7F-8FD8-344DABB613D9 reason=networkUnavailable\n[2026-08-01T14:03:02.005Z] [lifecycle] keep materialization claim book=D6B822F0-E641-4D7F-8FD8-344DABB613D9\n[2026-08-01T14:03:02.006Z] [lifecycle] keep materialization asset start index=1\/1 kind=photo\n[2026-08-01T14:03:02.007Z] [lifecycle] keep materialization failure book=D6B822F0-E641-4D7F-8FD8-344DABB613D9 reason=networkUnavailable\n[2026-08-01T14:03:02.008Z] [lifecycle] keep materialization claim book=D6B822F0-E641-4D7F-8FD8-344DABB613D9\n[2026-08-01T14:03:02.009Z] [lifecycle] keep materialization asset start index=1\/1 kind=photo\n[2026-08-01T14:03:02.010Z] [lifecycle] keep materialization failure book=D6B822F0-E641-4D7F-8FD8-344DABB613D9 reason=networkUnavailable\n[2026-08-01T14:03:02.011Z] [lifecycle] keep materialization claim book=D6B822F0-E641-4D7F-8FD8-344DABB613D9\n[2026-08-01T14:03:02.011Z] [lifecycle] keep materialization asset start index=1\/1 kind=photo\n[2026-08-01T14:03:02.012Z] [lifecycle] keep materialization failure book=D6B822F0-E641-4D7F-8FD8-344DABB613D9 reason=networkUnavailable\n[2026-08-01T14:03:02.014Z] [lifecycle] keep materialization claim book=D6B822F0-E641-4D7F-8FD8-344DABB613D9\n[2026-08-01T14:03:02.014Z] [lifecycle] keep materialization asset start index=1\/1 kind=photo\n[2026-08-01T14:03:02.016Z] [lifecycle] keep materialization failure book=D6B822F0-E641-4D7F-8FD8-344DABB613D9 reason=networkUnavailable\n[2026-08-01T14:03:02.021Z] [lifecycle] keep materialization claim save error book=F3BF2E99-05CA-43D9-95E8-025BD96F7EAC\n[2026-08-01T14:03:02.028Z] [lifecycle] keep materialization claim book=C4528F9B-D6A4-40C8-9227-7DB8633A91C4\n[2026-08-01T14:03:02.029Z] [lifecycle] keep materialization asset start index=1\/1 kind=photo\n[2026-08-01T14:03:02.030Z] [lifecycle] keep materialization asset complete index=1\/1 kind=photo source=photokit\n[2026-08-01T14:03:02.032Z] [lifecycle] keep materialization completion book=C4528F9B-D6A4-40C8-9227-7DB8633A91C4\n[2026-08-01T14:03:02.039Z] [lifecycle] keep materialization claim book=081B7DDA-1ABC-41AE-9C1F-7B962E0D3B34\n[2026-08-01T14:03:02.040Z] [lifecycle] keep materialization asset start index=1\/1 kind=photo\n[2026-08-01T14:03:02.042Z] [lifecycle] keep materialization asset complete index=1\/1 kind=photo source=photokit\n[2026-08-01T14:03:02.043Z] [lifecycle] keep materialization completion book=081B7DDA-1ABC-41AE-9C1F-7B962E0D3B34\n[2026-08-01T14:03:02.050Z] [lifecycle] keep materialization claim book=F6AAF4BF-54CE-4F69-B9B2-112BC86D3919\n[2026-08-01T14:03:02.052Z] [lifecycle] keep materialization asset start index=1\/2 kind=photo\n[2026-08-01T14:03:02.053Z] [lifecycle] keep materialization asset complete index=1\/2 kind=photo source=photokit\n[2026-08-01T14:03:02.054Z] [lifecycle] keep materialization asset start index=2\/2 kind=video\n[2026-08-01T14:03:02.055Z] [lifecycle] keep materialization failure book=F6AAF4BF-54CE-4F69-B9B2-112BC86D3919 reason=assetReadWrite\n[2026-08-01T14:03:02.056Z] [lifecycle] keep materialization claim book=F6AAF4BF-54CE-4F69-B9B2-112BC86D3919\n[2026-08-01T14:03:02.057Z] [lifecycle] keep materialization asset start index=1\/2 kind=photo\n[2026-08-01T14:03:02.057Z] [lifecycle] keep materialization asset complete index=1\/2 kind=photo source=staging\n[2026-08-01T14:03:02.058Z] [lifecycle] keep materialization asset start index=2\/2 kind=video\n[2026-08-01T14:03:02.059Z] [lifecycle] keep materialization asset complete index=2\/2 kind=video source=photokit\n[2026-08-01T14:03:02.061Z] [lifecycle] keep materialization completion book=F6AAF4BF-54CE-4F69-B9B2-112BC86D3919\n[2026-08-01T14:03:02.181Z] [lifecycle] keep materialization start\n[2026-08-01T14:03:02.181Z] [lifecycle] keep materialization error\n[2026-08-01T14:03:02.181Z] [lifecycle] keep rollback start\n[2026-08-01T14:03:02.182Z] [lifecycle] keep rollback save complete\n[2026-08-01T14:03:02.189Z] [lifecycle] keep materialization start\n[2026-08-01T14:03:02.189Z] [lifecycle] keep materialization complete\n[2026-08-01T14:03:02.189Z] [lifecycle] keep save start\n[2026-08-01T14:03:02.190Z] [lifecycle] keep save complete\n[2026-08-01T14:03:02.197Z] [lifecycle] keep materialization start\n[2026-08-01T14:03:02.251Z] [lifecycle] keep materialization timeout\n[2026-08-01T14:03:02.251Z] [lifecycle] keep rollback start\n[2026-08-01T14:03:02.252Z] [lifecycle] keep rollback save complete\n[2026-08-01T14:03:02.268Z] [lifecycle] keep commit already complete\n[2026-08-01T14:03:06.207Z] [hang] main-thread hang >3.0s",
  "deviceMetadata" : {
    "appUptimeSeconds" : "30",
    "appVersion" : "3.0",
    "availableMemoryBytes" : "0",
    "batteryState" : "unknown",
    "build" : "201",
    "deviceModel" : "arm64",
    "diskFreeBytes" : "9608966144",
    "iOSVersion" : "26.3.1",
    "locale" : "en_US@rg=myzzzz",
    "lowPowerMode" : "false",
    "physicalMemoryBytes" : "17179869184",
    "thermalState" : "nominal"
  },
  "logs" : "[2026-08-01T14:02:36.197Z] [error] [lifecycle] Abnormal termination packaged from previous session\n[2026-08-01T14:02:55.011Z] [error] [lifecycle] Hang report persisted: 3.0s\n[2026-08-01T14:02:55.292Z] [info] [lifecycle] Diagnostics upload sent: hang-3.0-201-8B5C823C-483B-4F0A-8AFD-D9BC29AF2E5E.json\n[2026-08-01T14:03:03.096Z] [error] [export] video-export-blocked reason=needsKeep\n[2026-08-01T14:03:03.097Z] [error] [export] video-export-blocked reason=receivedCopy\n[2026-08-01T14:03:03.100Z] [error] [export] video-export-blocked reason=needsKeep\n[2026-08-01T14:03:03.371Z] [error] [data] legacy-landscape unknown-semantics page=FD2908EF-A069-4C80-A8C4-69274BB3C80B version=999\n[2026-08-01T14:03:03.371Z] [error] [data] legacy-landscape unknown-semantics page=FD2908EF-A069-4C80-A8C4-69274BB3C80B version=999\n[2026-08-01T14:03:03.628Z] [info] [shape] schedule shape=landscape generation=0 next=1\n[2026-08-01T14:03:03.628Z] [info] [shape] task shape=landscape generation=0 next=1 cancelled=true\n[2026-08-01T14:03:03.628Z] [info] [shape] on-change shape=landscape generation=0\n[2026-08-01T14:03:03.701Z] [info] [editor] orientation-write site=applyPreset old=portrait new=portrait requested=single applied=single group=-1\n[2026-08-01T14:03:03.715Z] [info] [editor] orientation-write site=PageOrientationReflow.reflowElements old=portrait new=landscape group=-1\n[2026-08-01T14:03:03.722Z] [info] [editor] orientation-write site=PageOrientationReflow.reflowElements old=portrait new=landscape group=-1\n[2026-08-01T14:03:03.725Z] [info] [editor] orientation-write site=PageOrientationReflow.reflowElements old=portrait new=landscape group=-1\n[2026-08-01T14:03:03.731Z] [info] [editor] orientation-write site=PageOrientationReflow.reflowElements old=portrait new=landscape group=-1\n[2026-08-01T14:03:03.739Z] [info] [editor] orientation-write site=PageOrientationReflow.reflowElements old=portrait new=landscape group=-1\n[2026-08-01T14:03:03.746Z] [info] [editor] orientation-write site=PageOrientationReflow.reflowElements old=portrait new=landscape group=-1\n[2026-08-01T14:03:03.752Z] [info] [editor] orientation-write site=PageOrientationReflow.reflowElements old=portrait new=landscape group=-1\n[2026-08-01T14:03:03.758Z] [info] [editor] orientation-write site=PageOrientationReflow.reflowElements old=portrait new=landscape group=-1\n[2026-08-01T14:03:03.763Z] [info] [shape] schedule shape=portrait generation=1 next=2\n[2026-08-01T14:03:03.763Z] [info] [shape] schedule shape=landscape generation=2 next=3\n[2026-08-01T14:03:03.763Z] [info] [shape] task shape=portrait generation=1 next=3 cancelled=false\n[2026-08-01T14:03:03.763Z] [info] [shape] task-superseded shape=portrait generation=1 next=3\n[2026-08-01T14:03:03.763Z] [info] [shape] task shape=landscape generation=2 next=3 cancelled=false\n[2026-08-01T14:03:03.763Z] [info] [shape] on-change shape=landscape generation=2\n[2026-08-01T14:03:03.791Z] [info] [editor] orientation-write site=PageOrientationReflow.reflowElements old=landscape new=portrait group=-1\n[2026-08-01T14:03:03.796Z] [info] [editor] orientation-write site=PageOrientationReflow.reflowElements old=landscape new=portrait group=-1\n[2026-08-01T14:03:03.802Z] [info] [editor] orientation-write site=PageOrientationReflow.reflowElements old=landscape new=portrait group=-1\n[2026-08-01T14:03:03.808Z] [info] [editor] orientation-write site=PageOrientationReflow.reflowElements old=landscape new=portrait group=-1\n[2026-08-01T14:03:03.815Z] [info] [editor] orientation-write site=PageOrientationReflow.reflowElements old=landscape new=portrait group=-1\n[2026-08-01T14:03:03.822Z] [info] [editor] orientation-write site=PageOrientationReflow.reflowElements old=landscape new=portrait group=-1\n[2026-08-01T14:03:03.829Z] [info] [editor] orientation-write site=applyPreset old=landscape new=landscape requested=bleed2 applied=bleed2 group=-1\n[2026-08-01T14:03:03.832Z] [info] [editor] orientation-write site=applyPreset old=landscape new=landscape requested=bleed2 applied=bleed2 group=-1\n[2026-08-01T14:03:03.836Z] [info] [editor] orientation-write site=PageOrientationReflow.reflowElements old=portrait new=portrait group=-1\n[2026-08-01T14:03:03.842Z] [info] [editor] orientation-write site=PageOrientationReflow.reflowElements old=portrait new=portrait group=-1\n[2026-08-01T14:03:03.849Z] [info] [editor] orientation-write site=PageOrientationReflow.reflowElements old=portrait new=portrait group=-1",
  "note" : "main-thread hang detected",
  "stallDurationSeconds" : 3.0000510215759277,
  "timestamp" : 807285787.81424
}