Messages not quickly synchronized accross devices

According to the FAQ — Jami documentation, with devices linked to the same user account and using recent Eleutheria Jami versions, all messages should be synchronized across devices. Well, it almost happens if you don’t expect it to be real-time. Conversations can synchronize after a few days, even when the devices are always on-line…

What is the algorithm for same account cross-devices synchronization? If these conversations started a long time ago, before 1-to-1 swarms, do we need to recreate them to get faster updates?

What is the expected delay between cross-devices sync? If I type a chat message on one device, when can I expect to see it displayed on another linked devices? If the delay is longer, should I report a bug? Can we expect real-time sync between linked devices?

If two devices are joinable and not syncing it’s a bug and should be debugged

In order to open a bug report if necessary and with all information:

  1. How can I determine if all devices are joinable?
    On the PC side, in the Settings>Troubleshoot screen, I can see my account and a device hash, with the connected status.
    On the Android side, in Account Parameters, I see a list of 5 associated devices with one of those being the PC. I can’t find if the hash seen on the PC relates to the Android device.

  2. What is the expected delay for synchronization across devices? A few seconds? A few minutes? A few hours?
    Both devices are always sync after a few days, but I don’t know the minimum delay for one being synced with the messages from the other one.

I’ll try to reproduce the problem and capture logs.

If you have 2 devices shown as connected with default settings in the same conv, the sync must be done immediately.
The logs on both device will show a P2P connection negotiation.

If one got “no response from DHT” it will be more complicated to check, because it may be that the push is not received or not delivered (if open push it may depends on the rate limitation from your push provider), a device is blocked, etc

But basically if 2 devices are online the sync must be done.