When attempting to transfer an account from an old iPhone to new iPhone, the old iPhone fails to prompt the user with the "Transfer Account" screen as shown in the knowledge base.
Actual result: Signal on the old phone is unchanged and no "Transfer Account" prompt is displayed. It functions as normal and seems unaware of any transfer process being initiated.
Expected result: Signal on the old phone will display the "Transfer Account" prompt and the user can proceed to transfer their account from the old phone to the new phone.
Old Phone
Device: iPhone 6s (64GB)
iOS version: 14.2
Signal version: 3.21.2
New Phone
Device: iPhone 12 Mini (256GB)
iOS version: 14.2
Signal version: 3.21.2
On the new phone, when tapping 8 times on the QR Code screen, "Could not find any logs." is reported.
Latest attempt got this: https://debuglogs.org/36b31e5b385aa1cf7f4627b5d7b8e20ed929747eae8cc00a6e15db0216cb0c8d.zip
Following the setup process on the new phone to the "Get the message" page where the local network permissions are enabled, when pressing "Enable Permissions" the user is taken directly to the phone number page without iOS actually prompting the user to allow local network permissions. It can be confirmed when checking in Settings > Signal
and Settings > Privacy > Local Network
that local network permissions are not enabled (or visible) for Signal on the new phone. This setting cannot initially be set by the user either.
So it can be assumed that for some reason when pressing "Enable Permissions" iOS is not sent the request for that permission by Signal. This could explain why both phones cannot talk to each other.
Update: I reinstalled Signal on the new phone and now when pressing "Enable Permissions" iOS prompts for access to "Contacts" and "Notifications" but not "Local Network". I don't think there is a way for me to manually enable this. I believe apps need to first make the request for access.
Actually looking at the code, it doesn't look like Local Network permission are requested on Enable Permissions view:
I can confirm that this is a problem. The new phone isn't asking for permission and asks the user instead to grant the permission manually in the settings. But iOS doesn't allow us to grant the permission manually when the app has not yet tried to access the local network. This is completely blocking the transfer feature on iOS right now :(
This is how it looks like on a fresh install
This is how it looks like on a phone where signal has already been installed and activated for some time
I can confirm this.
Confirm
I have hit this problem too
And now I'm apparently banned from asking an SMS code because I tried too much...
This is blocking
@charlesmchen-signal @michaelkirk-signal @Imperiopolis-Signal
And now I'm apparently banned from asking an SMS code because I tried too much...
This is blocking
Be patient, that SMS auth opens up again after a couple of minutes (15-30 for me). Still the other problem remains.
I have this problem too.
I can confirm this problem!
I am also experiencing this issue
I can also confirm the problem. Both phones on 14.2
Same issue here. Bad timing for everyone getting their new iPhones today 😕
Exactly the same problem here, presumably because there is no request for local network access on the new device.
Hi, a fix for this is on the way, but if you’d like to transfer to your new phone sooner please download the latest beta version of Signal from TestFlight https://testflight.apple.com/join/8FHtd1Jq
The beta build is stable, and you can safely install the AppStore version over it after transferring if you do not wish to remain in the beta group.
Hey!
Thank You very much!
I can confirm that the TestFlight version 3.22.0.3 actually solved the problem for me.
Best Roddi
Am 13.11.2020 um 18:20 schrieb Nora Trapp notifications@github.com:
Hi, a fix for this is on the way, but if you’d like to transfer to your new phone sooner please download the latest beta version of Signal from TestFlight https://testflight.apple.com/join/8FHtd1JqThe beta build is stable, and you can safely install the AppStore version over it after transferring if you do not wish to remain in the beta group.
—
You are receiving this because you commented.
Reply to this email directly, view it on GitHub, or unsubscribe.
@roddi Thanks for confirming that it works! Because for me it doesn't work using the beta version. The "Local Network" permission is now available again, but the transfer does not get invoked.
Update: Sorry, for being stupid. I assumed the missing permission is the problem and updated only on the target devide to beta. After updating on both phones, it's working fine!
Great news, I'm glad to hear it's working for you both. The AppStore version with the fix should also be rolling out shortly. For anyone who is waiting, the build to look for is 3.21.3
The beta worked for me too! Thanks a lot!
@Imperiopolis-Signal Thanks for jumping on this so quickly. You guys are gold!
I think I'll hold out for the AppStore version if it will be out soon.
The beta build is stable, and you can safely install the AppStore version over it after transferring if you do not wish to remain in the beta group.
If we had a way to backup this migration wouldn't feel that risky. Also it would be so much easier if Signal on iOS would just support the same file format it uses on Android to create/restore backups. I really fear the migration as I just saw that part of the migration is the automatic deletion of the old history. No way to redo the transfer for any reason. Also a backup file would work if the phone has to go for a repair or so. Signal is the number one reason I didn't get my broken (screen and battery) old phone fixed as there was no way to backup.
I love Signal and I'm happy for all your work but the whole effort of doing an additional transfer protocol instead of using the way Android supports which would also allow cross migration is just bad and the missing backup hurts so much.
I love Signal and I'm happy for all your work but the whole effort of doing an additional transfer protocol instead of using the way Android supports which would also allow cross migration is just bad and the missing backup hurts so much.
I tend to agree. That said, the Signal team must have some reasoning behind this architecture decision. Maybe it has already been discussed elsewhere, if so perhaps someone could provide a link.
I love Signal and I'm happy for all your work but the whole effort of doing an additional transfer protocol instead of using the way Android supports which would also allow cross migration is just bad and the missing backup hurts so much.
We've spoken about this at length in various forums, but a file based backup is not something typical iOS users understand. It's also significantly more complicated to implement and maintain (because anyone could try and restore a backup made from any version of Signal). It has been a nightmare to support for our Android team, even on a platform where file management is something people are familiar with. That said, we realize the transfer is also an imperfect solution, but it's at least something compared to the years of nothing while we work on the right solution. The future for moving your data between devices in Signal likely looks like a choice between direct peer-to-peer transfer or restoration from some form of secure network storage.
I really fear the migration as I just saw that part of the migration is the automatic deletion of the old history. No way to redo the transfer for any reason.
The migration very carefully verifies that the transfer has been 100% successful before erasing any data on your old device. A manifest of every file to be transferred along with the checksum for that file is sent to the new device. The new device verifies that it has received every file that was intended to be transferred, that the checksum on every file exactly matches, and that all the files are properly moved into place and the database is decryptable. Only after all of these things are true does it tell your old device it's safe to erase itself. If anything is amiss, the transfer will fail and the data will remain on the old device. Also, you don't need to take my word for it. If you want to verify this verification logic yourself, take a look at https://github.com/signalapp/Signal-iOS/blob/02d6dcd1a3328b7cd16cd5036c37f82fd3bd4fcd/Signal/src/util/Device%20Transfer/DeviceTransferService%2BRestore.swift#L24
Also, all that said, if you want to discuss the backup system further please join us on our community forum. We reserve github issues for discussion of bugs.
I too had this problem, and the Beta solved. It wasn't clear (to me) that even though the source device had the permission, it also had to be updated to the beta, but once I read here actually carefully, and one "couldn't communicate", it transferred fine. Awesome feature! I've bumped through a couple of phone changes with signal and this is much much nicer!
Beta worked for me, thanks for getting a fix out so quickly!
@Imperiopolis-Signal Thanks for explaining the architecture decision. Makes sense. I figured there must be some good reasons.
Also, any idea on when the AppStore version with this fix will roll out? Are we talking hours or days?
Just want to manage my own expectations :)
The AppStore release was just approved by Apple and is rolling out now. 3.21.3 is the release to look for. I'm going to close this issue now that it's available in the app store.
Installed and transferring. Thanks again for the quick response.
Related, if people are getting over heating issues, this was my solution:
Wow, that was fast. Excellent work!! 👏
Most helpful comment
Hi, a fix for this is on the way, but if you’d like to transfer to your new phone sooner please download the latest beta version of Signal from TestFlight https://testflight.apple.com/join/8FHtd1Jq
The beta build is stable, and you can safely install the AppStore version over it after transferring if you do not wish to remain in the beta group.