# Runtime Crash: "Cannot read properties of undefined (reading 'isStickyWindow')" When Using window.open() in Web Groups

**URL:** https://community.interop.io/t/runtime-crash-cannot-read-properties-of-undefined-reading-isstickywindow-when-using-window-open-in-web-groups/609
**Category:** io.Connect Desktop
**Tags:** resolved
**Created:** [June 24, 2026, 3:16pm UTC](https://community.interop.io/t/runtime-crash-cannot-read-properties-of-undefined-reading-isstickywindow-when-using-window-open-in-web-groups/609 "2026-06-24T15:16:12Z")
**Posts on this page:** 1
**Page:** 1

<div class="post-metadata">

### Author: ![toni.petrov](https://yyz2.discourse-cdn.com/flex028/user_avatar/community.interop.io/toni.petrov/32/17_2.png) [@toni.petrov](https://community.interop.io/u/toni.petrov)
#### Post date: [June 24, 2026, 3:16pm UTC](https://community.interop.io/t/runtime-crash-cannot-read-properties-of-undefined-reading-isstickywindow-when-using-window-open-in-web-groups/609/1 "2026-06-24T15:16:12Z")

</div>

When calling `window.open()` from within an application running in a web group, io.Connect Desktop throws the following runtime error:

```auto
Cannot read properties of undefined (reading 'isStickyWindow')
TypeError: Cannot read properties of undefined (reading 'isStickyWindow')
    at o.getWindowPlacementSettings (...)
    at o.createPopup (...)
    at o.createWindow (...)
    at createWindow (...)
    at openGuestWindow (node:electron/js2c/browser_init:...)
    at WebContents.<anonymous> (node:electron/js2c/browser_init:...)
    at WebContents.emit (node:events:...)

```

## Cause

This issue occurs when the `"nativeWindowOpen"` property in your `system.json` (or in your application definition under `details`) is configured as an **object** instead of a **string**.

For example, the following object configuration causes the crash in web groups:

```auto
{
    "windows": {
        "nativeWindowOpen": {
            "mode": "window",
            "outlivesOpener": false
        }
    }
}

```

## Fix

This issue was fixed in **io.Connect Desktop 10.2**.

## Workaround

For earlier versions, change the `"nativeWindowOpen"` property to a **string** value. Because `"outlivesOpener"` is `false` by default, using the string `"window"` preserves the same behavior as the object configuration shown above:

**Option 1: Update `system.json`:**

```auto
{
    "windows": {
        "nativeWindowOpen": "window"
    }
}

```

**Option 2: Override per application:**

If you do not want to modify `system.json`, you can set the `"nativeWindowOpen"` property as a string in your web group application definition under `details`. This will override the system-level setting for that specific application.

## Additional Information

The `"nativeWindowOpen"` property accepts either a string or an object value:

- **String values** : `"window"` (default — opens as io.Connect Windows), `"browser"` (opens in the default browser), `"off"` (disables `window.open()`).
- **Object value** : Supports a `"grouping"` property for snapping/tabbing child windows to the parent (available since io.Connect Desktop 9.3).

For more details, see the [System Configuration documentation](https://docs.interop.io/desktop/developers/configuration/system/index.html).
