Intercom("showArticle") doesn't show article, possible race condition | Community
Skip to main content
Answered

Intercom("showArticle") doesn't show article, possible race condition

  • September 4, 2024
  • 3 replies
  • 452 views

 I’m using `Intercom(“showArticle”, articleId)` to show article content inside the Intercom widget. 

Under certain circumstances, after calling `Intercom(‘showArticle’,  articleId)`, instead of seeing the expected article, I instead get a “broken” version of the home screen. In particular, 

  1. The bottom navigation tabs are missing
  2. The help article links are inactive (clicking them does nothing)

 

My best theory so far is that there’s a race condition in the widget between loading the home screen content and the article content. My evidence to support this theory is

  1. The “broken” home state opens in the article frame (wide container, no navigation tabs)
  2. This state only (or exceedingly often) happens when calling `showArticle` before the messenger has been opened during the session. In that case, I believe `showArticle` is first loading/rendering the homescreen, increasing the likelihood of a race condition. 
  3. I can eliminate the bug by changing my article link onclick to `Intercom('show'); setTimeout(() => {Intercom('showArticle', '{{ id }}')}, 2000);`. This opens the messenger and gives it time to load before showing the article. 
  4. I’m much more likely to see the bug with “Disable cache” checked in chrome dev tools. 
  5. I’ve seen a case where the article content does show, but then clicking the “back” button in the widget closes the widget entirely. The expected behavior seems to be that clicking back from the article detail goes back to the home screen. When I observe “back” closing the widget entirely, it seems like maybe the widget wasn’t able to load the home screen content and add it to the navigation stack properly. 

This appears related to, albeit not identical to, this thread. 

Best answer by mateusz.leszkiewicz

Hi Tom Larsen, It’s Mat from the Support Engineering Team 😀

It looks like a something off is happening on our side. I will open up a conversation for you in Intercom. Our Team will take it from there.

3 replies

Dianah Tripac
Intercom Team
Forum|alt.badge.img+3
  • Leading the Community @ Fin
  • September 5, 2024

Looping in @Nathan Sudds and @mateusz.leszkiewicz in case they can advise on that 🙌


mateusz.leszkiewicz
Intercom Team
Forum|alt.badge.img+7

Hi Tom Larsen, It’s Mat from the Support Engineering Team 😀

It looks like a something off is happening on our side. I will open up a conversation for you in Intercom. Our Team will take it from there.


  • New Participant
  • August 24, 2026

We hit what looks like a related (possibly the same underlying) bug and traced the root cause in the messenger frame bundle. In our case showArticle works the first time, but once the messenger's internal route moves off the article view (e.g. after showConversation or user navigation, then close), every later showArticle reopens the previous view and the article never shows, for the rest of the session.

Root cause: the article-open thunk only dispatches router navigation when article.viewStack is empty, but the CLOSE_MESSENGER reducer preserves article state when isStandalone is true (which every API showArticle sets). So the view stack outlives the route, and the thunk skips navigation forever after.

Repro: (1) showArticle → works, (2) close, (3) showConversation → works, (4) close, (5) showArticle → opens the old conversation instead.

Workaround: call Intercom('showSpace', 'help') first (it dispatches the article-state reset), then showArticle after a short delay. Works, but flashes the help-space list.

We've filed a full written analysis with Intercom support, including code excerpts from the frame bundle and two suggested fixes.