I would like to draw attention to some severe issues in the Signal clients. Please read the following text: Signal Problems » Montréal Counter-information (July 2026). I think it’s unnecessary and dangerous if the police get their hands on the phone.Below there are steps in case anyone wants to verify it themselves.

Some questions (to the signal devs and the community)

-

Why is Signal keeping that much information instead of just deleting sensitive data?

-

Are there issues in the tracker?

-

Does Molly solve some of these issues?

-

As we can now have multiple accounts by using Signal Login: Can we migrate contacts?

-

also: There are three types of contacts (the ones I had in my phone book, the ones I added manually by phone number/username and the ones that I am/was part of a group). Can I filter/export/migrate these accounts?

To reproduce on Linux & Signal Desktop

Work on a copy of your profile, not the original:

cp -r ~/.config/Signal ~/signal-test-copy

jq -r '.key' ~/.config/Signal/config.json

sqlcipher ~/signal-test-copy/sql/db.sqlite

PRAGMA key = "x'<add the printed value here'";

tables # to see if it works

SELECT

g.name AS group_name,

datetime(g.active_at / 1000, 'unixepoch') AS last_active,

GROUP_CONCAT(

COALESCE(contact.profileFullName, contact.profileName, '(unknown/no local contact)')

|| ' | ' || COALESCE(contact.e164, '–')

|| ' | ' || CASE json_extract(member.value,'$.role') WHEN 2 THEN 'Admin' ELSE 'Member' END,

char(10)

) AS members

FROM conversations g

JOIN json_each(g.json, '$.membersV2') AS member

LEFT JOIN conversations contact

ON contact.serviceId = json_extract(member.value,'$.aci')

WHERE g.type = 'group'

AND json_extract(g.json,'$.left') = 1

GROUP BY g.id;

Gives you you (for deleted groups):

group_name = XY Group

last_active = 2025-03-11 14:22:03

members = Maxi Pinn | +491701234567 | Admin

Anna Pie | +491709876543 | Member

(unknown/no local contact) | – | Member

(unknown/no local contact) | +49151325624 | Member

1 Like