Need help migrating contacts to a new Delta Chat relay [all users from the same one with federation malfunction]

Delta Chat version
2.35

I manage a group on Delta Chat where all users (including myself) are currently using the same relay. This relay is now malfunctioning: it only delivers messages between users on the same relay, and cannot send or receive from other relays.

We want to migrate everyone to a new, working relay, but I’m unsure how to proceed with the transition.

The problem:
For me to get someone’s new address, they would need to message me from their new relay. But they only have my old relay address—and my old relay doesn’t accept messages from other relays.

Is there any way I can manually update or set a new relay for my existing contacts?
Any advice or known methods would be greatly appreciated.

2 Likes

I assume you have seen guide for migrating to new relay when federation works: How to migrate your profile to another relay (version 2.33)

Maybe something like this will work:

  1. Add secondary relay that federates properly to your current profile. Don’t select this relay as primary so you can still message your contacts.
  2. Create a new separate profile on a well-functioning relay that federates properly. This way you will know that anyone who contacts this profile is on a new relay.
  3. From this new profile create a “migration” group. Create invite link for this group.
  4. From your old profile write an instruction for other group members, telling them to:
    1. Add new relay on the same relay as your new profile.
    2. Select this new relay as primary.
    3. Click the invite link to join “migration” group.
  5. Follow the instruction you just sent yourself: switch your primary relay to the new one, join the “migration” group via invite link.
  6. Wait for everyone to join the “migration” group.
  7. Once everyone has joined the “migration” group, you can abandon it and keep chatting in the old group as you will have new addresses of everyone.
  8. Once you are sure everything works correctly, you can also delete separate profile that was inviting others to migration group.
1 Like

Thanks for your suggestion.
I tried the method you recommended, but unfortunately, it doesn’t work in my case. The issue is that when new members join the group, my main profile still does not receive their updated relay address.

1 Like

Is there a way to make Delta Chat completely “forget” a contact so they can rejoin a channel using a new relay?

Consider this scenario: my friend and I are on the same relay, and that relay stops working. We both switch to a new relay for sending messages, but Delta Chat still only knows the other person’s old relay address. Since the old relay is down, there’s no way to exchange messages and no built-in way to update the address.

This seems like a deadlock—is there any workaround or setting to force a contact refresh?

1 Like

Do they write anything to the group? They need to write something after joining, then the address will be updated.

1 Like

Yes, they write. The recipients relay addresses remain unchanged. And there the sender gets a “Undelivered Mail Returned to Sender” error.

Well, I see, for their address to be updated they need to write from the new address, but they cannot write to you from the new address because they still have your old address.

Also receiving a mail seems to be the only way to update the address, clicking on a vCard does not update it.

1 Like

Exactly—that’s the issue.

From what I can see, this problem can’t be solved with the current setup. My only option is to create a new profile, set up a new channel, and ask all members to join it using a working relay.

That said, I’m wondering if a feature could be added to Delta Chat in the future—one that would allow the sender to manually select or update a recipient’s relay address. This would prevent this kind of deadlock when a relay fails.

1 Like

Plan for the future is to use multiple relays at once, attaching secondary relays to the key and then sending to all of them.

1 Like

I have the same problem - multiple contacts (and me) were using chatmail server which is now down (and out of our control).

These contacts are mostly not power users at all, so I prefer to deal with this with minimal actions on their side. Auto-updates are enabled on their devices, so they are using fresh versions of DC clients.

Can I solve this problem by patching my desktop client database with new (added) relay addresses of these contacts (and then writing to them/creating group/etc.) ? If yes - where in DB should I look?

1 Like

@hs235711, would this work? You send one new contact for an account on a new server, to everyone, as a VCard. Everyone makes a new profile and transfers the new contact from their old profile to that new profile. Everyone sends a message to the new contact, which adds them all to a group.

Related:

1 Like

@9er, do you have an insecure connection to these people to get their new relay e-mail addresses? You could manually make VCards with the new addresses and the old keys, then attach the VCard files and send them to yourself. This should create functioning new contacts.

Exporting the old contacts as VCards and modifying them might be easiest.

1 Like

@hs235711, two more labor-intensive possibilities.

Everyone makes a new profile and copy-pastes the text contact code of their new profile into the old chat. Then one trusted person copy-pastes all those codes into the scan-QR page of their new profile, and creates a group with all those contacts. Two or more trusted people could split the work.

Or one trusted person sends an invite code for a new profile, and everyone else makes their own new profile and scans or pastes the new code into it.

1 Like

The problem will be solved with 2.45.0 by sending to all known relays of a contact at once, no need to do anything manually.

4 Likes

I think we may mark this as solved since 2.47

Both users need to upgrade to 2.47, would be great to also hear if this actually worked for the user.