> ## Documentation Index
> Fetch the complete documentation index at: https://docs.flashduty.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Electron SDK compatibility

> Review the Electron versions, operating systems, bundlers, and current limitations supported by the Electron RUM SDK

Before integration, confirm that your Electron version and build setup are supported.

## Supported environments

| Item               | Support                                                           |
| ------------------ | ----------------------------------------------------------------- |
| Electron           | Version 39 or later                                               |
| Operating systems  | macOS, Windows, Linux                                             |
| Main-process SDK   | `@flashcatcloud/electron-sdk`                                     |
| Renderer SDK       | `@flashcatcloud/browser-rum` 0.0.7 or later                       |
| Module formats     | CommonJS, ESM                                                     |
| Regular RUM upload | `POST https://<site>/api/v2/rum`, or a custom forwarding endpoint |

## Bundlers

| Build setup                         | Support                     | Integration method                                                                                       |
| ----------------------------------- | --------------------------- | -------------------------------------------------------------------------------------------------------- |
| Unbundled main process              | Supported                   | Make `@flashcatcloud/electron-sdk/instrument` the first import                                           |
| Vite / electron-vite / Forge + Vite | Supported                   | Use `@flashcatcloud/electron-sdk/vite-plugin`                                                            |
| Webpack / Forge + Webpack           | Supported                   | Use `@flashcatcloud/electron-sdk/webpack-plugin`                                                         |
| esbuild                             | Supported                   | Use `@flashcatcloud/electron-sdk/esbuild-plugin`                                                         |
| Other bundlers                      | Requires custom integration | Ensure instrument runs before Electron and keep `dd-trace` plus the Electron SDK as runtime dependencies |

When the main process is bundled, use the matching plugin. The plugin preserves instrumentation order, runtime dependencies, and the bridge preload.

## Renderer page loading

The page loaded by the current window does not need a host allowlist entry.

| Loading method                                  | Support                | Notes                                                       |
| ----------------------------------------------- | ---------------------- | ----------------------------------------------------------- |
| `loadURL('http://localhost:<port>')`            | Supported              | Suitable for a local development server                     |
| `loadURL('https://<host>')`                     | Supported              | The current page is automatically allowed to use the bridge |
| Custom protocol such as `app://`                | Supported              | The current page is automatically allowed to use the bridge |
| `loadFile()` / `file://`                        | Supported              | No additional configuration                                 |
| Third-party page in `<webview>` / `BrowserView` | Requires configuration | Add the third-party host to `allowedWebViewHosts`           |

## Feature support

| Capability                             | Support   | Notes                                                                       |
| -------------------------------------- | --------- | --------------------------------------------------------------------------- |
| Main-process sessions and view         | Supported | The SDK maintains a session and fixed main-process view                     |
| Main-process JavaScript errors         | Supported | Automatically captures uncaught exceptions and unhandled Promise rejections |
| Native crashes                         | Supported | Writes a minidump and reports it on the next application start              |
| Renderer and child process termination | Supported | Captures `render-process-gone` and `child-process-gone`                     |
| Main-process network requests          | Supported | Captures `http`, `https`, `fetch`, and `net.fetch`                          |
| Renderer page experience               | Supported | Matches Web SDK view, action, resource, error, and Web Vitals collection    |
| Session Replay                         | Supported | Requires direct renderer upload and a compatible CSP                        |
| JavaScript source maps                 | Supported | Applies to main-process and renderer errors                                 |
| Native crash symbolication             | Supported | Requires matching Breakpad symbol files                                     |

## Current limitations

| Limitation                                                | Impact                                                                                          |
| --------------------------------------------------------- | ----------------------------------------------------------------------------------------------- |
| Session Replay bypasses the main process                  | Configure `sessionReplayDirectUpload`, CSP, and any self-hosted endpoint in the renderer        |
| No full APM pipeline                                      | Only main-process HTTP spans become RUM resources; IPC and child-process spans are not uploaded |
| Logs are not forwarded                                    | Log events sent through the renderer bridge are not uploaded as RUM data                        |
| No main-process Web Vitals                                | LCP, INP, CLS, long tasks, and user actions come from renderers                                 |
| Main-process RUM events do not contain `env`              | Renderer events retain the `env` set in `flashcatRum.init()`                                    |
| Pre-created-window correction covers only `BrowserWindow` | FCP and LCP from `WebContentsView` and `<webview>` are not corrected                            |
| Native crashes require symbols                            | Crash events are still reported without symbols, but native frames remain raw addresses         |

See [Electron SDK troubleshooting](/en/rum/sdk/electron/faq) for symptom-based checks.

## Related pages

<CardGroup cols={2}>
  <Card title="SDK integration" icon="plug" href="/en/rum/sdk/electron/sdk-integration">
    Instrument the main and renderer processes.
  </Card>

  <Card title="Advanced configuration" icon="sliders" href="/en/rum/sdk/electron/advanced-config">
    Configure custom upload endpoints and public APIs.
  </Card>

  <Card title="Data collection" icon="database" href="/en/rum/sdk/electron/data-collection">
    Learn what each process collects.
  </Card>

  <Card title="Error symbolication" icon="bug" href="/en/rum/sdk/electron/error-symbolication">
    Restore JavaScript and native crash stacks.
  </Card>
</CardGroup>
