Any idea what "[Violation] 'setTimeout' handler took XXms" means?

Hi all, I’m seeing a couple of these in my console when I refresh my page. Page still loads fast (~3s). Any idea what these could be or how to fix it?

Is there any problem that you are seeing with your app?

Sometimes on a perfectly fine app, you’ll find logs like this. Just go to any popular website, open up the console, and you’ll see stuff like this.

This is a browser performance warning, not a Bubble error. Chrome fires it when a setTimeout callback blocks the main thread for 50ms+.

In Bubble, the usual suspects are:

  • Bubble’s own runtime initializing (workflows, conditionals, RGs all fire on load)

  • Third-party scripts — analytics, Intercom, Hotjar, etc.

  • Custom JS running on page load

Since your page loads fine at ~3s, it’s almost certainly just Bubble’s initialization overhead. Safe to ignore unless you’re seeing actual sluggishness.

If you want to confirm the source, open Chrome DevTools → Performance tab, record a page load, and look for the long task, it’ll show you exactly which script is responsible.

No “problems” but it may reflect a bad practice?

I have a lot of “page is loaded” and “do when condition is true” statements. 95% of them don’t depend on any data from the server and those which do use “Current user’s X” but I’m thinking this is the issue.

I wonder if anyone has experimented with using a single “Page is loaded” with multiple custom events using different conditions vs multiple Page is loaded workflows with different conditions? Would there be any difference?