Skip to content

BIOS-33821: Fix Facebook contact disappearing from SNC once a DM exists#285

Draft
Fizzadar wants to merge 1 commit into
mainfrom
nick/bios-33821-fb-snc-existing-dm
Draft

BIOS-33821: Fix Facebook contact disappearing from SNC once a DM exists#285
Fizzadar wants to merge 1 commit into
mainfrom
nick/bios-33821-fb-snc-existing-dm

Conversation

@Fizzadar

Copy link
Copy Markdown
Member

Problem

On Facebook, once a DM exists with a contact, that contact disappears from Start New Chat search / Connections. Searching the name without spaces makes them reappear.

Root cause

Messenger DMs are created as ENCRYPTED_OVER_WA_ONE_TO_ONE (ThreadType 15), but SearchUsers only surfaced plain ONE_TO_ONE (type 1) results. Once a DM exists, Meta returns the contact as a type-15 existing-thread result, which was filtered out twice (the connector filter and GetFBID() returning 0 for non-type-1).

Fix

  • pkg/connector/startchat.go: relax the SearchUsers filter to accept all 1:1 thread types via ThreadType.IsOneToOne() (still gated on CanViewerMessage and GetFBID() != 0).
  • pkg/messagix/table/search.go: GetFBID() now returns OtherUserId when set, falling back to parsing ResultId for any 1:1 thread type.

Verification

go build and go vet pass on the changed packages. Direct on-bridge repro (search a contact with an existing Messenger E2EE DM, confirm it now appears) recommended before merge — the raw type-15 search response was inferred from the struct + the with/without-space asymmetry, not captured in trace logs.

Messenger DMs are created as ENCRYPTED_OVER_WA_ONE_TO_ONE (type 15), but
SearchUsers only surfaced plain ONE_TO_ONE results, so a contact vanished
from Start New Chat once a DM existed.

Relax the SearchUsers filter to accept all 1:1 thread types via IsOneToOne().
Make GetFBID() return OtherUserId when set, falling back to ResultId for any 1:1 thread type.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Development

Successfully merging this pull request may close these issues.

1 participant