When attempting to filter a dataset in the FiftyOne App using a high-cardinality custom metadata field, the UI becomes unresponsive and eventually throws a "Script Snippet" timeout error in the browser.
Steps to Reproduce
Load a dataset with >100k samples: dataset = fo.load_dataset("my_large_dataset")
Open the App: session = fo.launch_app(dataset)
In the sidebar, navigate to metadata -> custom_field.
Select a specific value to filter.
The App freezes for 10+ seconds.
Expected Behavior
The App should apply the view stage and refresh the grid within a reasonable timeframe (under 2 seconds) or show a loading state without locking the browser thread.
Environment Information
FiftyOne Version: [e.g., 0.23.8]
OS: [e.g., macOS Sonoma / Ubuntu 22.04]
Python Version: [e.g., 3.10.12]
Browser: [e.g., Chrome 122]
Code Snippet / Logs
Python
import fiftyone as fo
Replace with your specific logic
dataset = fo.Dataset("test-issue")
... logic to add samples ...
session = fo.launch_app(dataset)
When attempting to filter a dataset in the FiftyOne App using a high-cardinality custom metadata field, the UI becomes unresponsive and eventually throws a "Script Snippet" timeout error in the browser.
Steps to Reproduce
Load a dataset with >100k samples: dataset = fo.load_dataset("my_large_dataset")
Open the App: session = fo.launch_app(dataset)
In the sidebar, navigate to metadata -> custom_field.
Select a specific value to filter.
The App freezes for 10+ seconds.
Expected Behavior
The App should apply the view stage and refresh the grid within a reasonable timeframe (under 2 seconds) or show a loading state without locking the browser thread.
Environment Information
FiftyOne Version: [e.g., 0.23.8]
OS: [e.g., macOS Sonoma / Ubuntu 22.04]
Python Version: [e.g., 3.10.12]
Browser: [e.g., Chrome 122]
Code Snippet / Logs
Python
import fiftyone as fo
Replace with your specific logic
dataset = fo.Dataset("test-issue")
... logic to add samples ...
session = fo.launch_app(dataset)