Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Username & photo are not being displayed #165

Open
derritter88 opened this issue Nov 9, 2021 · 17 comments
Open

Username & photo are not being displayed #165

derritter88 opened this issue Nov 9, 2021 · 17 comments

Comments

@derritter88
Copy link

I have set up the bridge and usually if I start a new conversation it only shows the phone number of the contact but not any name or a photo/thumbnail.

@kernelkaribou
Copy link

Same behavior came looking for other posts about this. I am not entirely familiar with the settings, not sure if the bridge->contact_list_names & displayname_preference is related to Signal itself or an association Matrix user identities with the same phone numbers. I have that as allow and first_name as the displayname_preference

Renamed the DM room it creates but would love to have the name of the person (and photo if possible).

@sumnerevans
Copy link
Member

It sometimes takes an hour or two to sync profile pictures and usernames. There's also an issue in upstream signald about get_profile failing in certain unknown situations: https://gitlab.com/signald/signald/-/issues/236

@derritter88
Copy link
Author

I have reset the whole bridge to see if I have broken the configuration including a new database.
Unfortunately it does not solve the problem.

I am also using the Git version of the pip packages to use the latest possible version (recommended by tulir).

What is a strange behaviour for me:
signald is downloading the userphotos and can also display information of the users but the mautrix-signal bridge seems to ignore this.
I have also added the bridge user the signald and from a Linux perspective it should be able to read any files within the signald folders

@derritter88
Copy link
Author

@sumnerevans What is the logic of mautrix-signal?
If get_profile does not contain all data in the beginning, will it check it afterwards again or will it not?

I had the issue that in the beginning not many data were provided but now I would see a display name + a user photo which is not being used by the bridge.

@sumnerevans
Copy link
Member

At least on master, get_profile is called every hour, but with async of true which will return immediately, and may have incomplete data. However, the next call to get_profile (which will happen about an hour later) will get the updated info.

@derritter88
Copy link
Author

That's interessting as the bridge still does not show any updated information (profile picture/name) - while get_profile shows me that there is a name & a photo available by signald

@derritter88
Copy link
Author

derritter88 commented Nov 25, 2021

I have tried to set the parameter to false ->

kwargs = {"async": use_cache}

But still not working.

Which logic is parsing the signal user photo/name and putting it to the Matrix environment?

@Jaffex
Copy link

Jaffex commented Dec 5, 2021

I'm experiencing a similar problem - some signal contacts immediately show up with names and avatar, sometimes they will be missing name and avatar initially but will receive them at a later point, but sometimes it just gets stuck at their phone number and no avatar.

When checking signald however, it has received an avatar file as well as the profile name for those contacts.

@mhthies
Copy link

mhthies commented Dec 25, 2021

I have the same problem.

As far as I can tell from the code, the problem might be with signal peers that are not contacts:

I use signald with mautrix-signal as my primary Signal client and currently don't have any other Signal client. Thus, I don't have preexisting contacts. And it seems that private Signal chats are not added to the Signal contact list either: I have two private chats, one initiated by the peer, one initiated by me, via mautrix-signal's pm command. However, raw --user v1.list_contacts {} still returns
{ "profiles": [] }.

And, if I understand correctly, only the puppets for the contacts returned by list_contacts are updated during periodic sync and sync command:

for contact in await self.bridge.signal.list_contacts(self.username):

While the "asnyc" behaviour above explains, why the profile data is missing initially, this would explain, why the data is not updated later on, during periodic sync or with the sync command.

Now, the question is: Should my private chats automatically appear in list_contacts? Is it a bug of mautrix-signal or signald that this does not happen? Or should mautrix-signal consider existing private chats for profile data sync, independently from/in addition to signal contacts?

(mautrix-signal 0.2.1 & signald 0.15.0-33-986558ee)

@bjo81
Copy link

bjo81 commented Dec 30, 2021

I upgraded mautrix-signal and signald to master, and the issue appears here as well, even with contact_list_names: prefer. Additionally, groups and chats create no portals except I send pm +number, but the names still remain "number (Signal)".
The issue occors with one user with the bridge as primary device and another with a linked device.

@Happyfeet01
Copy link

have the same Problem, someone wrote me one Signal, but i don´t know where is the Person. i got only +49Number(Signal)

@jaylik
Copy link

jaylik commented Dec 31, 2021

Same problem here - bridge registered as primary device and no contacts.

@ShadowJonathan
Copy link

I'm having the same problem digging a bit into it, it seems that signald does not respond with all known contacts when querying v1.list_contacts, it only responds with my "local" user.

Though, if i do v1.get_profile, i do get the right results.

@ShadowJonathan
Copy link

I logged in and out, this seems to fix some users, but it didn't fix other users i would've wanted their profile pics for. v1.list_contacts lists a lot more now, but not the respective users im actually talking with. v1.get_profile did respond correctly though.

@vranki
Copy link

vranki commented Jun 1, 2022

As a user workaround for this is to run sync command after a new DM is started. The user sets display name and avatar after that.

Can't we just run sync automatically after a new DM is started?

@maltee1
Copy link
Contributor

maltee1 commented Aug 23, 2022

That is already attempted afaik, but it doesn't necessarily help, because the profile doesn't become available until the respective user has allowed you to see it. That usually happens after they reply to your first message or accept your group invitation. Mautrix-signal would have to check for that.
If the DM is created because of them sending a message first, it should work (and probably already does).
What could be done is to refresh the profile when we don't yet have a profile and receive a message. But I suppose that's also difficult with partial profile data.

@Hana2736
Copy link

Does this also affect the Discord bridge? None of my contacts have names, even when their profile pictures have loaded.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Development

No branches or pull requests