language_override and user update | Community
Skip to main content
Question

language_override and user update

  • December 1, 2025
  • 1 reply
  • 72 views

Hello. I encountered two issues during implementation in the web app:

1. After updating the language via language_override, the intercom language is updated, with the exception of the block for composing a new message (the language changes within this block).

To change the language of this block, you need to completely reinitialize the connection via shutdown and boot. This works the same in both demo and user mode.
 

 

 

  1. Also, if we were initialized in our application as a demo user and did an update upon login with user_id, user_hash, and other user data, then the user's message history is not loaded, although his name is displayed and if we write an intercom message, it comes from this user. This can also only be solved by a complete reinitialization via shutdown and boot.

1 reply

Forum|alt.badge.img+4
  • Intercom Team
  • December 16, 2025

Hi ​@PavelPostnov, Seán here from the Intercom engineering support team 👋 

Thank you so much for this feedback! It’s always good to get valuable pieces like this. On looking up an answer for you I saw that Dara has answered your second question and has opened a ticket with our dev team on the first one.

I’m not going to mess with perfection as I think Daras answer is very good for question 2 so I’m going to share it here for any one else that’s curious:

When you call shutdown() followed immediately by boot() with user data including user_hash, there's a race condition where the session cookie from the previous user session may not be fully cleared before the new boot request is sent. The server sees conflicting data: the old session cookie AND new user credentials, which causes the identity verification to fail.

Booting anonymously first bypasses identity verification entirely (since anonymous users don't require user_hash). The delay gives time for old cookies to clear and new session state to establish. Then update() properly validates the user_hash against the established clean session.

Another good workaround for this is to use setTimeout() to add a slight delay before calling boot().