Skip to main content

We are getting a lot of “Conflict” 409 errors when trying to create a contact via API. When a little bit different ‘external_id’ is provided (other data is the same) there is no error. Seems like intercom has a record in place with this external_id but:

 - It’s not being returned when searching via API (using external_id)

 - User can’t be found on intercom website 

 - User doesn’t exist in the export file (all conctacts)
 

Hey @Lukasz Kopcinski Racheal from the support engineer team here👋 

 

A 409 means multiple existing users match this email address and you must be more specific using user_id. This typically means there is an issue with having multiple users who have the same email address, and Intercom not knowing which one you are trying to log in. So there was likely a duplicate user created with the same email and now without a User ID being present in your installation, we are unsure which user you are referring to. Before you provide the different external_id, is there an ID provided at all?

 

This can be fixed by archiving / deleting one of these users, or updating them to have a User ID, and then including User ID when identifying users. Note, to update a User ID in Intercom you must use the REST API. We recommend that you always include a User ID when Identifying users, as it can help mitigate issues like this in the future, read more about implementing that in the iOS SDK here 👈


Hi, we are seeing some 409 Conflict errors now we have removed the user_id from our identifying call and I am not sure how to go about fixing it.   This is why we removed the user_id:

  1. We were looking into enabling identity verification and we originally passed user_id and email address to identify users.  We implemented the hash on user_id because the intercom docs say they will use the user_id over the email address if both are supplied.
  2. We then noticed that the user_id was being removed by firefox due to sume privacy settings - https://www.intercom.com/help/en/articles/1200-why-am-i-missing-users-that-are-showing-up-on-my-own-system
  3. We figured that this would break the identity verification if we enabled it because for those users the user_hash wasn’t being sent with the hash so intercom would not allow it
  4. To get around this we decided to hash on email address instead but needed to remove the user_id because the doc say intercom will use this over the email address if both are sent.

Now we are seeing these 409 Confict errors. Is there anything we can do ?  When looking at the identification verification settings in the admin it looks like it allows you to specify what you are hashing on.  Is that just there for the code samples it displays or does it use that to actually determine which field to use when checking the hash?

Wouldn’t it make more sense to allow us to specify whether we want to use user_id or email address to hash on and then we could still hash on email address but still send across the user_id.  This would help with the 409 Conflict issues but no break when firefox removes the user_id from the intercom request.


Reply