The friend contextId must be byte-identical on both peers for a given canonical pair regardless of argument order. Initial-sync backfill keys on contextId; if the two sides computed different values for the same friendship, missed events would never reconcile.