Skip to content

Graph View expansion crashes Web Content Process on iOS #2257

@kiycoh

Description

@kiycoh

Bug description
When attempting to interact with or expand the graph view on a mobile device (specifically iOS 21), the page hangs after a few seconds of loading and subsequently crashes or forces a reload.

It appears that the force-directed graph simulation consumes excessive resources on mobile hardware, causing the browser to terminate the Web Content Process (likely due to an Out of Memory - OOM exception or a blocked main thread). If running in a development environment, this manifests as a WebSocket disconnection; in production, it causes the browser tab to crash and reload.

To Reproduce
Steps to reproduce the behavior:

  1. Open a Quartz site on an iOS device (iPhone/iPad). My quartz repo
  2. Navigate to any note containing the Graph View component.
  3. Click on the button to interact with/expand the graph view.
  4. Observe the UI freezing for a few seconds.
  5. The page reloads automatically or displays a "A problem occurred with this webpage" error (Safari/WebKit crash).

Expected behavior
The graph view should load, settle, and allow interaction without consuming enough resources to trigger a browser process termination, or it should fail gracefully on constrained mobile hardware.

Screenshots and Source

ScreenRecording_12-21-2025.16-20-16_1.MP4
  • Quartz Version: v4
  • node Version: 22.14.0
  • npm version: 11.2
  • OS: iOS 21
  • Browser: Safari / Firefox

Additional context
The issue seems strictly related to hardware constraints on mobile devices regarding force simulations (maybe D3.js?).

  • The crash might suggest a WebKit Web Content Process termination. The system likely kills the tab process due to high memory pressure or a "watchdog" timeout because the main thread is blocked by the graph calculation loop.
  • This happens consistently on larger graphs but might be reproducible on smaller ones depending on the device generation.

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugSomething isn't working

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions