Sharing contact adds the wrong country code
- [x] I have searched open and closed issues for duplicates
- [x] I am submitting a bug report for existing functionality that does not work as intended
- [x] I have read https://github.com/signalapp/Signal-Android/wiki/Submitting-useful-bug-reports
- [x] This isn't a feature request or a discussion topic
Bug description
When sharing a contact using "Share" in Android Contacts, the contacts phone number gets altered and adds +1 in front of their phone number by Signal. This seems to happen if the contact does not have a country code added to their phone number.
Steps to reproduce
- Go to your Android Contacts
- Pick a contact without a country code in their phone number
- Go to the More Options Menu (three dots)
- Tap 'Share' and select a Signal Contact
- Notice that the number has now changed format and a +1 has been added to the number.
Please note: This has been tested on Samsung S9 and a Nokia 7 as well, both up to date running the
Additionally, this bug may relate to #9439?
Actual result: The contacts number has been modified with a +1 in front. Causing the contact information to be invalid. Expected result: The contact information should remain it's integrity when shared with Signal.
Screenshots

Device info
Device: Pixel 3A Android version: 10 Signal version: 4.59.9
Link to debug log
N/A
What is the correct country code for this number?
Also, is your own country code not +1?
What is the correct country code for this number?
The number in the screenshots is fake. It it just to prove the bug exists. Feel free to reproduce the bug by following my instructions.
The bug has most likely to do with Signal trying to guess or change the number into an American number (+1), when it reality, it shouldn't edit the number at all without user interaction.
Please answer: is your own country code not +1?
Please answer: is your own country code not +1?
My country code is not +1.
Is your device language set to "English (United States)"?
I'm not saying that changing that is the solution (although it should stop this happening), just trying to find the source of your issue.
That is where it is getting the +1.
Is your device language set to "English (United States)"?
Yes, my system language is set to English.
Sorry, the question wasn't so much about English as which country you have set.
The country dictates the country code. Do you have it set to "English (United States)"?:

Right, I do have English (United States) set in my phone. I still strongly suggest that this automated country code editing is removed or at least not done without user being prompted about it. The way it works today is sneaky and not very clear to the user.
I just had the same issue. However it changed the international dialling code to +44 (UK) one of the other languages I have listed lower down in Android, this despite when I sent it my Signal was showing +1 (had English US as first language).
Update: her Samsung Android phone has language set as English UK, so that is why Signal added the +44 dialling code. However we are both in Australia!
Changing defalt language to Australian on both phones fixed issue. Though guess just changing her phone to Australian would have given her correct international dialling code, ie Australian.
When sharing with Whatsapp the correct Australian code was set as +61, this was before we made any changes to default language (perhaps you can use their method)
Can't Signal deduce country from the country code that it already has from user registration? I can see this becoming a larger issue given recent user base growth, user who are probably less technically savvy than most older Signal users.
(I have another app which only works with language set to English US 😕)
PS. I'm on Beta 5.5.5
Is this still relevant? If so, what is blocking it? Is there anything you can do to help move it forward?
This issue has been automatically marked as stale because it has not had recent activity. It will be closed if no further activity occurs.
this is still an issue. if I share a contact without a leading country code Signal will add that oft the country I have currently set in settings -> language
In https://github.com/signalapp/Signal-Android/pull/13004 I try to circumvent the issue by using NATIONAL formatting, when the defaultRegion has been used while parsing. It could be argued that providing a defaultRegion doesn't make sense in the first place.
Unfortunately I currently don't have a local toolchain available to build and test the changes. Maybe a contributor can tell if this solution might be a viable option and if it makes sense to take this further.
another thing: I just mentioned I can not share a contact including birth date. This could be fixed when looking into here anyway...
another thing: I just mentioned I can not share a contact including birth date. This could be fixed when looking into here anyway...
Although unrelated a bit: i do have notes and e.g. URLs added to contacts. Last week I wanted to share the contact of a pizzeria next to me to a friend so he would be able to bring pizzas. Menu card is on the homepage... in the end i had to retype the url. -.-
Same with notes, which includes bank account information, for another use case. Don't have to be active by default as long as I can share these bits.
Sorry, the question wasn't so much about English as which country you have set.
The country dictates the country code. Do you have it set to "English (United States)"?:
Can confirm that this is due to the language settings. Sharing a contact without an explicit country code with my wife will show up as +44 on my end (language set to english uk) and +1 on her end (language set to english us). We live in Germany (+49). When saving the contact it will be saved without the country code.
Sharing a contact that has a country code included shows up correctly.
I don't think it is a good idea to tie the country code to the phone language settings. This is just bound to cause confusion. The chance of someone having their phone language not set to their country of residency is quite high.
Just to bump this up, it is still an issue, I got a french contact shared to my phone where the language is English UK, got a +44 as country code instead of +33.
Bumping too. I'm in the Philippines, there is no language setting "English (Philippines)" and so all PH contacts without country code are being shared with +44 prefix, the language I have set. Sharing the same contact through WhatsApp correctly sets the country code to +63