I have a Dropdown ripping through WU

Today I noticed that I have a Dropdown ripping through hundreds of WU per hour in my agency account. I’m the only person working on this and I noticed this error when I tried to save a record:

Workflows could not run because too many events triggered at the same time.

Drilled down through the usage and it lead me to Fetching Data → Search → Do a search for…

Clicking on that took me directly to a User dropdown list, which uses Do a search for to populate it.

I kind of remember seeing a YouTube video about something similar to this. I have an external API making calls into Bubble. But, these should extremely low volume, especially in dev.

I check all known sources for a possible recursion loop, but I don’t see any evidence I’m in one.

I haven’t touched this section of the app in some time. It has always worked just fine. During this time, I setup a User trigger to process data in an external system, which does cause the User to be updated with the result of that process. I was very careful to not cause recursion and as I’m logging that activity in that system, I see no evidence there is recursion. The only thing I can think of is I had the screen open has I made several quick back to back updates to the users table in Bubble, which likely caused the dropdown to requery data.

I feel if there was a way to turn off live updates for some components, this would not be a risk/issue. Are there any known workarounds to load the data once, and never get it again unless the page is refreshed?

Any other ideas how I might troubleshoot my problem?

Thank you.

Is it using a plugin or native Bubble dropdown?

Hi, it is using a native dropdown. Just searching for Users, of which there are about 10 so far.

I haven’t touched this section of the app in some time. It has always worked just fine. During this time, I setup a User trigger to process data in an external system, which does cause the User to be updated with the result of that process. I was very careful to not cause recursion and as I’m logging that activity in that system, I see no evidence there is recursion. The only thing I can think of is I had the screen open has I made several quick back to back updates to the users table in Bubble, which likely caused the dropdown to requery data.

I feel if there was a way to turn off live updates for some components, this would not be a risk/issue. Are there any known workarounds to load the data once, and never get it again unless the page is refreshed?

You can use a state instead and set the user list in this state to avoid it to be reloaded each time a change happen in DB

1 Like

So to confirm, if I use Do a search for to set a Users list on a custom state, it will ignore any updates to the underlying data?

Thank you.

1 Like

Yes exactly. On page load, set state and use this state in the dropdown

1 Like

The main issue here is using a dropdown for large datasets.

Why dropdowns are problematic:

  • Dropdowns load all options when rendered.
  • This becomes very sluggish and consumes high workflow units (WU) when the list contains hundreds or thousands of users.
  • Scrolling through 1000+ records is a poor user experience.
  • Standard dropdowns don’t have built-in search capabilities.

Better alternative: Search input

  • Queries the database directly.
  • Returns only the top 10 most relevant results.
  • Provides a much smoother and faster experience for users.

If you want the dropdown feel:

  • Create a custom reusable component:
    • An input field for typing.
    • Fuzzy search powered by Algolia or similar.
    • A repeating group below the input showing the limited search results (e.g., 10 items).
    • On selecting an item, save it to the reusable’s data.

Note:
The downside is that the reusable can’t autobind unless you restrict it to a single data type and autobind within the reuseable.

2 Likes

Thank you. I’ll consider swapping this out for a search input.

FWIW, my dropdown only has 2 records in it.