Anyone seen delayed asset loading in intercom when handling media-heavy apps? | Community
Skip to main content
Question

Anyone seen delayed asset loading in intercom when handling media-heavy apps?

  • November 25, 2025
  • 1 reply
  • 7 views

Hello everyone, I encountered a strange issue while testing user flows for a mobile video editor, similar to the capcut apk tools I've been using. sometimes it takes a long time for the Intercom widget to appear when the app loads larger media files, or it appears after everything else has finished loading.

Has anyone else observed that Intercom behaves strangely when handling large files or a lot of ui changes? Is there a better way to queue events to ensure smooth operation, or do you think this is just a performance hiccup? I'd be interested in learning how others have dealt with it.

1 reply

Paul Byrne
Intercom Team
Forum|alt.badge.img+6
  • Intercom Team
  • November 27, 2025

Hey ​@pratiwi445 Paul here from support engineering to help you out 🤝 

The Intercom mobile SDK needs access to the main thread to build the messenger UI and fetch your workspace’s messenger settings. If your app is busy with heavy UI or synchronous media processing (like decoding or rendering large files), the messenger has to wait until that work finishes before it can appear.

The key action here: move any heavy media work (like thumbnails or frame decoding) off the main thread. Use a background queue for processing, and only update your views on the main thread when they’re ready. This prevents the main thread from being blocked, so the messenger can paint as soon as possible.

If the main thread is tied up, the SDK can’t create the messenger’s view hierarchy or fetch settings, so the messenger appears last—after your app’s heavy work is done. Initializing the Intercom SDK as early as possible in your app’s startup (AppDelegate didFinishLaunchingWithOptions for iOS, Application.onCreate for Android) also gives it more time to prepare UI assets, which helps with performance.

If you want even more control, you can hide the launcher during heavy loads and show it again when you’re ready. This can be done in your app code or by toggling show_launcher/instant_boot_enabled in your workspace settings. If you’d like, just let me know your platform (iOS, Android, or React Native), and I’ll send over the exact code snippets.

I know you rely on a smooth messenger experience to keep your users engaged and supported, so keeping the main thread free during heavy processing is key to making that reliable.

Can you try moving your media work off the main thread and make sure you’re on the latest Intercom SDK version? If you still see delays, let me know which SDK you’re using, and I’ll help you fine-tune the integration. For future troubleshooting, a quick way to check if the main thread is blocked is to use your platform’s performance tools (like Instruments on iOS or Android Profiler) to spot any UI thread bottlenecks.

Let me know how it goes.