iachat/spec
Pranav b5deac468e
fix: Fix duplicate contact inbox race condition (#11139)
This PR addresses a race condition in the contact inbox model caused by
duplicate `source_id` values linked to different contacts.

The issue typically occurs when an agent updates a contact’s email or
phone number or when two contacts are merged. In these scenarios, the
`source_id`, which is intended to uniquely identify the contact in a
session, may still be associated with the old contact inbox.

To solve this, we check if there’s already a ContactInbox with the same
source_id but linked to another contact. If we find one, we update that
old record by changing its source_id to a random value. This breaks the
wrong connection and prevents issues, while still keeping the old data
safe.

However, this is only a temporary fix. The main issue is with the way
the contact inbox model is designed. Right now, it’s being used to track
sessions, but that may not be necessary for non-live chat channels. In
the long run, we should consider redesigning this part of the system to
avoid such problems.
2025-03-20 18:24:28 -07:00
..
actions fix: Migrate notes when merging the contacts (#8749) 2024-01-20 10:32:18 +04:00
assets chore: Contact import improvements (#7787) 2023-08-23 23:24:47 -07:00
builders fix: Fix duplicate contact inbox race condition (#11139) 2025-03-20 18:24:28 -07:00
channels fix: Move contact events to account stream rather than individual user stream (#11082) 2025-03-13 17:46:48 -07:00
configs chore: Enable the new Rubocop rules (#7122) 2023-05-19 14:37:10 +05:30
controllers chore: Add validations to campaign model 2025-03-19 17:29:08 -07:00
dispatchers Non blocking event dispatch (#652) 2020-03-29 19:18:30 +05:30
drops feat: Add the support for custom attributes in message variables (#8511) 2023-12-08 14:13:35 -08:00
enterprise feat: Add support for multi-language support for Captain (#11068) 2025-03-19 18:25:33 -07:00
factories feat(apps): Shopify Integration (#11101) 2025-03-19 15:37:55 -07:00
finders fix: Inbox view Read/Snoozed display filters (#8907) 2024-02-17 13:59:25 +05:30
fixtures fix: Process non-image inline attachments as regular attachments (#10998) 2025-02-28 13:33:48 -08:00
helpers feat(apps): Shopify Integration (#11101) 2025-03-19 15:37:55 -07:00
integration Fix url in emails, add frontendURL helper (#19) 2019-08-25 19:59:28 +05:30
jobs chore: Add validations to campaign model 2025-03-19 17:29:08 -07:00
lib feat: use nocookie version of youtube & vimeo for help center embeds (#11061) 2025-03-12 10:32:25 +05:30
listeners chore: Ignore notification when assignee is nil (#11105) 2025-03-18 20:14:19 -07:00
mailboxes fix: Process non-image inline attachments as regular attachments (#10998) 2025-02-28 13:33:48 -08:00
mailers feat: add Google Email fetch and OAuth token refresh service (#9603) 2024-06-11 14:22:03 +05:30
models feat: Add support for multi-language support for Captain (#11068) 2025-03-19 18:25:33 -07:00
policies Feature: Ability to switch between multiple accounts (#881) 2020-05-26 22:38:48 +05:30
presenters chore: Update the precision of the updated_at timestamp in conversation model (#10875) 2025-02-10 20:22:11 -08:00
requests/api/v1 feat: Update the slack integration-flow to allow users to select the channel (#7637) 2023-07-28 14:50:30 -07:00
services chore: Add validations to campaign model 2025-03-19 17:29:08 -07:00
support feat: Slack link unfurling (#7940) 2023-09-29 19:35:56 +05:30
workers fix: Capture delivery errors to avoid false positives (#8790) 2024-01-26 14:22:18 +04:00
rails_helper.rb feat: locking and retry in FB message parsing (#7701) 2023-08-23 09:48:17 +07:00
spec_helper.rb feat(ee): Add Captain features (#10665) 2025-01-14 16:15:47 -08:00
test_helper.rb Chore: Setup test coverage in codeclimate [#332] (#333) 2019-12-02 08:57:11 +05:30