Skip to content

ResizeObserver loop completed with undelivered notifications #7718

Open
@kimskovhusandersen

Description

@kimskovhusandersen

Provide a general summary of the issue here

When using the useComboBox hook from React Spectrum (in conjunction with hooks such as useButton, usePopover, Overlay, useListBox, and useOption), we occasionally encounter the following error ResizeObserver loop completed with undelivered notifications.
This error appears to be related to the useResizeObserver hook implementation.

🤔 Expected Behavior?

The application should not crash. The ResizeObserver should be managed in a way that it cleans up observers and handles notifications without causing a crash or unhandled exceptions.

😯 Current Behavior

The error ResizeObserver loop completed with undelivered notifications is thrown, leading to a complete application crash. This prevents users from interacting with the application until a full reload is performed.

💁 Possible Solution

Instead of applying immediate DOM updates on every notification, consider debouncing or throttling your update logic. This reduces the frequency of changes and can help avoid recursive resize events.

🔦 Context

using @react-aria/utils 3.27

"@react-aria/button": "^3.9.1",
"@react-aria/combobox": "^3.8.2",
"@react-aria/focus": "^3.18.4",
"@react-aria/listbox": "^3.11.3",
"@react-aria/overlays": "^3.20.0",
"@react-aria/toast": "^3.0.0-beta.15",
"@react-stately/collections": "^3.10.4",
"@react-stately/combobox": "^3.8.1",
"@react-stately/list": "^3.10.2",
"@react-stately/toast": "^3.0.0-beta.5",

🖥️ Steps to Reproduce

  • Create or use an existing component that leverages the useComboBox hook, in combination with useButton, usePopover, Overlay, useListBox, and useOption.
  • Interact with the combo box/popover by selecting an option from the list.
  • The error occurs thereafter and the entire application crashes.

Version

individual packages installed (see context)

What browsers are you seeing the problem on?

Chrome

If other, please specify.

No response

What operating system are you using?

MacOS

🧢 Your Company/Team

No response

🕷 Tracking Issue

No response

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions