Render process gone (crashed) when open collection which is large

XMLWordPrintableJSON

    • Type: Bug
    • Resolution: Duplicate
    • Priority: Major - P3
    • 1.49.14
    • Affects Version/s: 1.49.12
    • Component/s: None
    • Environment:
      OS: Windows 11 25H2 26200.8875
      node.js / npm versions:
      Additional info:
    • Not Needed
    • None
    • Developer Tools

      Problem Statement/Rationale

      MongoDB Compass crashes its renderer process when I open the Documents tab for a collection containing large documents. The entire Compass window becomes blank and cannot recover. I have to close and restart the application.

      The database query itself completes successfully. The Compass log shows successful `find` and `getMore` operations, followed by:

       

      "msg":"Render process gone"
      "reason":"crashed"
      "exitCode":-1073741819

       

       

      On Windows, exit code `-1073741819` corresponds to `0xC0000005` (access violation).

      I also reproduced the issue after starting Compass with `--disable-gpu`. The new log confirms that the option was parsed:

       

      "msg":"Parsed command line flags"
      "options":["_","disableGpu"]

       

       

      The renderer still crashed with the same exit code, so the problem does not appear to be caused by GPU acceleration.

      I would like the Engineering team to investigate why the Compass renderer crashes while decoding or displaying these documents. Ideally, Compass should render large documents lazily, limit the amount of data passed to the renderer, or show an error without terminating the entire renderer process.

      I will attach redacted Compass logs from runs with and without `--disable-gpu`.

      Steps to Reproduce

      Environment:

       

      Operating system: Windows x64
      MongoDB Compass: 1.49.12
      Electron: 41.1.1
      Chrome: 146.0.7680.166
      Node.js: 24.14.0
      MongoDB Server: 7.0.28, standalone

       

       

      1. Connect Compass to the MongoDB deployment.
      2. Open a collection containing large documents.
      3. Allow Compass to open the Documents tab with its existing query settings:

       

      Filter: none
      Projection: none
      Skip: 0
      Limit: 100
      MaxTimeMS: 60000

       

      4. Compass successfully executes the `find` operation and several `getMore` operations.
      5. Shortly after the documents have been retrieved, the Compass window becomes completely blank.
      6. The application does not recover and must be restarted.

      The collection statistics during the latest reproduction were:

       

      Document count: 46
      Total document size: 138,600,231 bytes
      Average document size: 3,013,048 bytes
      Capped collection: false

       

      The issue was also reproduced earlier when the same collection contained only four documents:

       

      Document count: 4
      Total document size: 11,957,195 bytes
      Average document size: 2,989,298 bytes

       

      This suggests that the issue may be related to the size or internal structure of individual documents, rather than only the total number of documents.

      The issue is consistently reproducible with this collection. I have encountered similar behavior in several earlier Compass versions as well.

      Expected Results

      Compass should display the collection without crashing.

      If the documents are too large or complex to render efficiently, Compass should do one or more of the following:

      • Render documents or nested fields lazily.
      • Automatically reduce the initial batch size based on byte size.
      • Keep large arrays and embedded documents collapsed.
      • Display a warning or recoverable error.
      • Allow the user to enter a projection or lower limit without terminating the renderer.

      The rest of the Compass interface should remain usable.

      Actual Results

      The MongoDB queries complete successfully, but the Compass renderer process crashes shortly afterward.

      In the latest reproduction:

      The final "Running find" event occurred at:
      2026-07-22T06:52:12.325Z
      The renderer crash was recorded at:
      2026-07-22T06:52:12.808Z
      

      The relevant error is:

       

      COMPASS-WINDOW-MANAGER
      Render process gone
      reason: crashed
      exitCode: -1073741819

       

       

      The entire Compass window becomes blank. No error dialog or recovery option is displayed, and Compass must be restarted.

      Starting Compass with `--disable-gpu` does not prevent the crash.

      Additional Notes

      • The issue is reproducible with GPU acceleration disabled.
      • The logs do not show a JavaScript heap out-of-memory error.
      • The collection query and its `getMore` operations complete successfully before the renderer crashes.
      • The affected documents average approximately 3 MB of BSON data each.
      • Compass attempts to load the documents without a projection.
      • The connection uses a restricted MongoDB user. Some optional Compass metadata operations such as `$indexStats`, `$currentOp`, and reading `config.collections` return `Unauthorized`. These errors are handled and logged before the renderer crash. The primary collection `find` and `getMore` operations succeed.
      • Other collections containing smaller documents can be opened normally with the same connection and user.
      • Redacted Compass logs from both the normal run and the `--disable-gpu` run are attached.
      • I can provide a sanitized document structure or synthetic reproduction data if required.

        1. Screen Recording 2026-07-23 at 11.53.15.mov
          152 kB
        2. not_disable_gpu.log
          267 kB
        3. doc_example.txt
          10 kB
        4. disable-gpu.log
          80 kB

            Assignee:
            Unassigned
            Reporter:
            Heartbleed N/A (EXT)
            Votes:
            0 Vote for this issue
            Watchers:
            4 Start watching this issue

              Created:
              Updated:
              Resolved: