Checking: have you upgraded to 0.38 version? That fixes ax receiving issue.
Otherwise it’s a different issue
Totally forgot add my system info. Anyway first line of the logs shows the version. But in case other system info is needed.
My system info
- Device: Sony Xperia 10 III
- SFOS version: 5.0.0.72
- Whisperfish version: 0.6.0 beta 38
My secondary-linked Whisperfish (with primary also being WF on another device) today refuses to connect.
On the secondary installation, I just saw this in the journal:
Jan 26 15:39:19 PGJollaC2 lipstick[6212]: [D] onCompleted:309 - coverActionIndicators created harbour-whisperfish.desktop
Jan 26 15:39:19 PGJollaC2 harbour-whisperfish[18793]: Not connected to server, cannot initialize PNI. Retrying in 10 seconds.
Jan 26 15:39:19 PGJollaC2 harbour-whisperfish[18793]: Our own profile is up-to-date, not fetching.
Jan 26 15:39:19 PGJollaC2 harbour-whisperfish[18793]: message 3792 expires at 2026-02-01 17:56:05 UTC; scheduling wake-up.
Jan 26 15:39:20 PGJollaC2 harbour-whisperfish[18793]: Empty envelope
Jan 26 15:39:20 PGJollaC2 harbour-whisperfish[18793]: Unparsable ServiceId
Jan 26 15:39:20 PGJollaC2 harbour-whisperfish[18793]: Unparsable ServiceId
Jan 26 15:39:20 PGJollaC2 harbour-whisperfish[18793]: Empty envelope
Jan 26 15:39:20 PGJollaC2 harbour-whisperfish[18793]: Empty envelope
Jan 26 15:39:20 PGJollaC2 harbour-whisperfish[18793]: Empty envelope
Jan 26 15:39:20 PGJollaC2 invoker[18578]: thread 'main' panicked at /home/mersdk/whisperfish-build/vendor/zkgroup/src/api/profiles/profile_key_credential_presentation.rs:102:15:
Jan 26 15:39:20 PGJollaC2 invoker[18578]: index out of bounds: the len is 0 but the index is 0
Jan 26 15:39:20 PGJollaC2 invoker[18578]: note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace
Jan 26 15:39:20 PGJollaC2 harbour-whisperfish[18793]: SignalWebSocket: Websocket closing: request handler failed
Jan 26 15:39:21 PGJollaC2 harbour-whisperfish[18793]: service error: Websocket closing: WebSocket closing while sending request
I believe this is related to missing a sender key sync before the upgrade to beta 38. Could you try:
- Enable developer mode
- Go to that specific contact’s profile page
- Pull down to “reset secure session” (not identity key!)
- Disable developer mode
and then try again?
Okay - but how do I know which contact? Can I do it on all of the recent conversations just to make sure?
Also, I guess this needs to be done on the Secondary installation, not primary.
Wrong thread, that was a reply to @Hoxifi. I’m looking at your case, but that’s 100% a bug on our side and will need a patched binary. I’ll DM you a link with an RPM which you can try!
refactor: decrypt_profile_key_presentation by rubdos · Pull Request #388 · whisperfish/libsignal-service-rs · GitHub should fix your issue, @nephros. I’ll try to spin a build.
I tried those steps, but the results were the same.
Here are some logs while I did the test in case you would need them.
2026-01-27T17:19:38.040553Z INFO whisperfish::gui: QmlApp::application loaded - version v0.6.0-beta.38
2026-01-27T17:19:38.534200Z WARN whisperfish::qtlog: qml/harbour-whisperfish-main.qml:443:5: QML Connections: Cannot assign to non-existent property "onRingingChanged"
2026-01-27T17:19:38.662403Z INFO run: whisperfish::worker::setup: identity_key found, assuming registered
2026-01-27T17:19:38.662456Z INFO run: whisperfish::config::settings: Setting default settings.
2026-01-27T17:19:38.828134Z DEBUG whisperfish::qtlog: Starting favorites query at 382 ms
2026-01-27T17:19:38.829567Z WARN whisperfish::qtlog: qml/harbour-whisperfish-main.qml:41: ReferenceError: PeopleModel is not defined
2026-01-27T17:19:38.915827Z DEBUG whisperfish::qtlog: Starting metadata query at 469 ms
2026-01-27T17:19:38.916624Z DEBUG whisperfish::qtlog: Favorites queried in 470 ms
2026-01-27T17:19:38.949987Z DEBUG whisperfish::qtlog: All queried in 504 ms
2026-01-27T17:19:52.423453Z DEBUG whisperfish::qtlog: qml/components/Emojify.qml:88:onCompleted(): [Emojify] implementation loaded
2026-01-27T17:19:52.539832Z DEBUG whisperfish::qtlog: file:///usr/share/maliit/plugins/com/jolla/ichthyo_color_emojis/emoji.js:242:getStylePath(): found emoji style at /home/defaultuser/.local/share/sailor-emoji/openmoji/15.0.0/2764.svg
2026-01-27T17:19:52.562492Z INFO whisperfish::worker::client: E.164: +censored_possible_phone_no, ACI: Some(censored-uuid-uuid-uuid-12characters), PNI: Some(censored-uuid-uuid-uuid-12characters), DeviceId: 1
2026-01-27T17:19:52.658179Z DEBUG whisperfish::worker::client::migrations::master_key: Whisperfish has master key.
2026-01-27T17:19:52.658259Z WARN whisperfish::worker::client::migrations::pni: Not connected to server, cannot initialize PNI. Retrying in 10 seconds.
2026-01-27T17:19:52.699479Z INFO refresh own profile: whisperfish::worker::client::profile_upload: Our own profile is up-to-date, not fetching.
2026-01-27T17:19:53.474157Z DEBUG websocket: libsignal_service::websocket: sending keep-alive
2026-01-27T17:19:53.489414Z INFO whisperfish::worker::client: Message queue is empty!
2026-01-27T17:19:53.489557Z DEBUG whisperfish::qtlog: qml/harbour-whisperfish-main.qml:278:flushNotifications(): Flushing notifications, len: 0
2026-01-27T17:19:53.616138Z DEBUG update_pre_key_bundle{service_id_kind=ACI use_last_resort_key=true}: libsignal_service::account_manager: Last resort pre-keys are up to date.
2026-01-27T17:19:53.646046Z DEBUG update_pre_key_bundle{service_id_kind=ACI use_last_resort_key=true}: libsignal_service::account_manager: Available keys sufficient
2026-01-27T17:19:54.190297Z DEBUG whisperfish::worker::client::unidentified: Fetched 2 sender certificates
2026-01-27T17:20:00.147972Z DEBUG whisperfish::qtlog: qml/pages/MainPage.qml:224:onClicked(): Activating session: 6
2026-01-27T17:20:00.934739Z WARN whisperfish::qtlog: qml/pages/RecipientProfilePage.qml:133:30: Unable to assign [undefined] to QString
2026-01-27T17:20:00.935164Z WARN whisperfish::qtlog: qml/pages/RecipientProfilePage.qml:147:32: Unable to assign [undefined] to QString
2026-01-27T17:20:00.935408Z WARN whisperfish::qtlog: qml/pages/RecipientProfilePage.qml:264:23: Unable to assign [undefined] to QString
2026-01-27T17:20:00.935526Z WARN whisperfish::qtlog: qml/pages/ConversationPage.qml:103:22: Unable to assign [undefined] to QString
2026-01-27T17:20:03.054992Z DEBUG update_pre_key_bundle{service_id_kind=PNI use_last_resort_key=true}: libsignal_service::account_manager: Last resort pre-keys are up to date.
2026-01-27T17:20:03.071371Z DEBUG update_pre_key_bundle{service_id_kind=PNI use_last_resort_key=true}: libsignal_service::account_manager: Available keys sufficient
2026-01-27T17:20:38.467170Z DEBUG whisperfish::qtlog: qml/pages/MainPage.qml:224:onClicked(): Activating session: 5
2026-01-27T17:20:48.474328Z DEBUG websocket: libsignal_service::websocket: sending keep-alive
2026-01-27T17:21:43.474622Z DEBUG websocket: libsignal_service::websocket: sending keep-alive
2026-01-27T17:22:38.474057Z DEBUG websocket: libsignal_service::websocket: sending keep-alive
2026-01-27T17:23:33.474973Z DEBUG websocket: libsignal_service::websocket: sending keep-alive
2026-01-27T17:24:28.474972Z DEBUG websocket: libsignal_service::websocket: sending keep-alive
2026-01-27T17:25:23.474488Z DEBUG websocket: libsignal_service::websocket: sending keep-alive
2026-01-27T17:25:51.511334Z ERROR whisperfish::worker::client: Error opening envelope: SignalProtocolError(NoSenderKeyState { distribution_id: censored-uuid-uuid-uuid-12characters })
2026-01-27T17:25:54.662295Z ERROR whisperfish::worker::client: Error opening envelope: SignalProtocolError(NoSenderKeyState { distribution_id: censored-uuid-uuid-uuid-12characters })
2026-01-27T17:26:18.474480Z DEBUG websocket: libsignal_service::websocket: sending keep-alive
2026-01-27T17:26:26.996028Z DEBUG whisperfish::qtlog: qml/pages/MainPage.qml:224:onClicked(): Activating session: 6
2026-01-27T17:26:27.329153Z WARN whisperfish::qtlog: qml/pages/RecipientProfilePage.qml:133:30: Unable to assign [undefined] to QString
2026-01-27T17:26:27.329210Z WARN whisperfish::qtlog: qml/pages/RecipientProfilePage.qml:147:32: Unable to assign [undefined] to QString
2026-01-27T17:26:27.329253Z WARN whisperfish::qtlog: qml/pages/RecipientProfilePage.qml:264:23: Unable to assign [undefined] to QString
2026-01-27T17:26:27.329291Z WARN whisperfish::qtlog: qml/pages/ConversationPage.qml:103:22: Unable to assign [undefined] to QString
2026-01-27T17:27:06.699432Z DEBUG whisperfish::qtlog: qml/pages/RecipientProfilePage.qml:50:(): Resetting secure session with +censored_possible_phone_no
2026-01-27T17:27:06.772693Z WARN whisperfish::qtlog: qml/cover/CoverPage.qml:159: TypeError: Cannot read property '_message' of null
2026-01-27T17:27:06.782364Z DEBUG whisperfish::model::messages: Handling insertion event
2026-01-27T17:27:07.410725Z DEBUG ClientActor::SendMessage{message_id=7866}:sending message{mid=7866}:websocket: libsignal_service::websocket: sending keep-alive
2026-01-27T17:27:07.997339Z DEBUG websocket: libsignal_service::websocket: sending keep-alive
2026-01-27T17:27:08.007558Z DEBUG send_message{timestamp=censored_possible_phone_no include_pni_signature=false online=false unidentified_access=true recipient="censored-uuid-uuid-uuid-12characters"}: libsignal_service::sender: sending identified
2026-01-27T17:27:08.181233Z DEBUG send_message{timestamp=censored_possible_phone_no include_pni_signature=false online=false unidentified_access=true recipient="censored-uuid-uuid-uuid-12characters"}: libsignal_service::sender: message sent!
2026-01-27T17:27:08.181321Z DEBUG send_message{timestamp=censored_possible_phone_no include_pni_signature=false online=false unidentified_access=true recipient="censored-uuid-uuid-uuid-12characters"}: libsignal_service::sender: sending multi-device sync message
2026-01-27T17:27:08.204881Z DEBUG send_message{timestamp=censored_possible_phone_no include_pni_signature=false online=false unidentified_access=true recipient="censored-uuid-uuid-uuid-12characters"}: libsignal_service::sender: sending identified
2026-01-27T17:27:08.388049Z WARN whisperfish::worker::client: Empty envelope
2026-01-27T17:27:08.396058Z DEBUG send_message{timestamp=censored_possible_phone_no include_pni_signature=false online=false unidentified_access=true recipient="censored-uuid-uuid-uuid-12characters"}: libsignal_service::sender: message sent!
2026-01-27T17:27:08.408277Z DEBUG send_message{timestamp=censored_possible_phone_no include_pni_signature=false online=false unidentified_access=true recipient="censored-uuid-uuid-uuid-12characters"}: libsignal_service::sender: ended 1 sessions with censored-uuid-uuid-uuid-12characters
2026-01-27T17:27:08.408666Z ERROR websocket: libsignal_service::websocket: SignalWebSocket: Websocket closing: end of application request stream; socket closing
2026-01-27T17:27:08.416425Z INFO ClientActor::SendMessage{message_id=7866}:sending message{mid=7866}: whisperfish::worker::client: Setting unidentified access mode for censored-uuid-uuid-uuid-12characters from Enabled to Disabled
2026-01-27T17:27:08.437390Z ERROR ClientActor::SendMessage{message_id=7866}:sending message{mid=7866}:websocket: libsignal_service::websocket: SignalWebSocket: Websocket closing: end of application request stream; socket closing
2026-01-27T17:27:08.544283Z WARN whisperfish::qtlog: qml/pages/RecipientProfilePage.qml:133:30: Unable to assign [undefined] to QString
2026-01-27T17:27:08.544336Z WARN whisperfish::qtlog: qml/pages/RecipientProfilePage.qml:147:32: Unable to assign [undefined] to QString
2026-01-27T17:27:08.544363Z WARN whisperfish::qtlog: qml/pages/RecipientProfilePage.qml:264:23: Unable to assign [undefined] to QString
2026-01-27T17:27:08.554883Z WARN whisperfish::qtlog: qml/pages/ConversationPage.qml:103:22: Unable to assign [undefined] to QString
2026-01-27T17:27:08.555002Z WARN whisperfish::qtlog: qml/pages/RecipientProfilePage.qml:264:23: Unable to assign [undefined] to QString
2026-01-27T17:27:08.555199Z WARN whisperfish::qtlog: qml/pages/RecipientProfilePage.qml:147:32: Unable to assign [undefined] to QString
2026-01-27T17:27:08.555257Z WARN whisperfish::qtlog: qml/pages/RecipientProfilePage.qml:133:30: Unable to assign [undefined] to QString
2026-01-27T17:27:08.565489Z DEBUG whisperfish::model::messages: Handling update event.
2026-01-27T17:27:08.837434Z DEBUG process_envelope{metadata=Metadata { sender: censored-uuid-uuid-uuid-12characters, guid: censored-uuid-uuid-uuid-12characters } body=DataMessage(DataMessage { body: None, attachments: [], group_v2: None, flags: Some(4), expire_timer: Some(0), expire_timer_version: Some(0),: censored_ Some(censored_possible_phone_no), quote: None, contact: [], preview: [], sticker: None, required_protocol_version: Some(0), is_view_once: None, reaction: None, delete: None, body_ranges: [], group_call_update: None, payment: None, story_context: None, gift_badge: None })}:handle_message{edit=None source_phonenumber=None source_addr=censored-uuid-uuid-uuid-12characters is_edit=false}: whisperfish::worker::client: Message without (alt) body, not inserting
2026-01-27T17:27:09.317621Z DEBUG websocket: libsignal_service::websocket: sending keep-alive
2026-01-27T17:27:09.328279Z DEBUG send_message{timestamp=censored_possible_phone_no include_pni_signature=false online=false unidentified_access=true recipient="censored-uuid-uuid-uuid-12characters"}: libsignal_service::sender: sending via unidentified
2026-01-27T17:27:09.489307Z DEBUG send_message{timestamp=censored_possible_phone_no include_pni_signature=false online=false unidentified_access=true recipient="censored-uuid-uuid-uuid-12characters"}: libsignal_service::sender: message sent!
2026-01-27T17:27:09.489382Z DEBUG send_message{timestamp=censored_possible_phone_no include_pni_signature=false online=false unidentified_access=true recipient="censored-uuid-uuid-uuid-12characters"}: libsignal_service::sender: sending multi-device sync message
2026-01-27T17:27:09.489410Z ERROR send_message{timestamp=censored_possible_phone_no include_pni_signature=false online=false unidentified_access=true recipient="censored-uuid-uuid-uuid-12characters"}: libsignal_service::sender: could not create sync message from a direct message
2026-01-27T17:27:09.489676Z ERROR websocket: libsignal_service::websocket: SignalWebSocket: Websocket closing: end of application request stream; socket closing
2026-01-27T17:27:13.474457Z DEBUG websocket: libsignal_service::websocket: sending keep-alive
2026-01-27T17:27:53.334730Z ERROR whisperfish::worker::client: Error opening envelope: SignalProtocolError(NoSenderKeyState { distribution_id: censored-uuid-uuid-uuid-12characters })
2026-01-27T17:27:53.396338Z DEBUG whisperfish::qtlog: qml/pages/MainPage.qml:224:onClicked(): Activating session: 5
2026-01-27T17:27:57.737885Z ERROR whisperfish::worker::client: Error opening envelope: SignalProtocolError(NoSenderKeyState { distribution_id: censored-uuid-uuid-uuid-12characters })
2026-01-27T17:28:06.160167Z DEBUG whisperfish::qtlog: qml/pages/MainPage.qml:224:onClicked(): Activating session: 6
2026-01-27T17:28:06.575739Z WARN whisperfish::qtlog: qml/pages/RecipientProfilePage.qml:133:30: Unable to assign [undefined] to QString
2026-01-27T17:28:06.575814Z WARN whisperfish::qtlog: qml/pages/RecipientProfilePage.qml:147:32: Unable to assign [undefined] to QString
2026-01-27T17:28:06.575909Z WARN whisperfish::qtlog: qml/pages/RecipientProfilePage.qml:264:23: Unable to assign [undefined] to QString
2026-01-27T17:28:06.575941Z WARN whisperfish::qtlog: qml/pages/ConversationPage.qml:103:22: Unable to assign [undefined] to QString
2026-01-27T17:28:08.474500Z DEBUG websocket: libsignal_service::websocket: sending keep-alive
2026-01-27T17:28:11.251414Z DEBUG whisperfish::qtlog: qml/pages/MainPage.qml:224:onClicked(): Activating session: 5
2026-01-27T17:29:03.475353Z DEBUG websocket: libsignal_service::websocket: sending keep-alive
2026-01-27T17:29:10.803945Z DEBUG whisperfish::qtlog: qml/pages/MainPage.qml:224:onClicked(): Activating session: 5
Today I started to receive messages from that person in that one group. So the problem has been resolved. Thank you for your help.
They rotated the disttibution key. Yay for self healing Signal protocol :')
How to re-link WF as secondary ie show the QR code in WF to link to Signal?
I have moved primary signal to a new phone, and all linked devices need to be linked again. I can’t see where to get Wf to show the linking QR code.
You’ll have to manually reset Whisperfish: Frequently Asked Questions · Wiki · Whisperfish / Whisperfish - Signal on Sailfish OS · GitLab It’s rather annoying, since it removes your messages. There’s currently no workaround for that, I’m afraid.
if this GitLab site is not linked in WF now, would be good to add the link to this wiki ![]()
Edit: answering my Question, it is already linked, accessible in “about > and Go to wiki”
Oh, we have it there?! Oh, we do! ![]()
I tend to forget how big this thing has become, haha! Thanks for checking ![]()
EDIT: you know, most of the time when you need to reset, you can’t even get to the About menu…
Just notced mentions (of me?) are displayed weirdly.
Just an @_ with a link behind it. The link has the content mention://9a35ZZZZ-7e16-YYYY-ab76-b95d270XXXX.
The goal is to actually capture them as linkable and show the profile page, but that’s not yet implemented. That’s how they’re shown in official Signal apps as well, as far as I understand:
Does that make sense?
That’s fine - what’s not fine is that in my case, the name does not show up at all, just the @.
So I can’t actually tell who’s been mentioned.
They should map 1:1 on the member list in the group view. If there’s a mismatch, it’s a bug, and if there’s a name missing, that’s also a bug (but a more difficult one). If the name’s missing, you can: tap-and-hold, open the DM session, swipe to the profile, and pull down for a profile refresh.
Signal Desktop version 8.0.0 has been available since February 25, 2026. This deleted my link to the primary Whisperfish on the Xperia 10 IV.
Can I simply relink the device, or is it already known whether this could cause any problems?
Thank you very much!
Hi @Oldergod. I just upgraded and did not get unlinked. I’m quite sure relinking should be fine; the changes in 8.0 aren’t on the protocol side: they bumped the version because 8.0 now supports secure backups.
Is there any chance that you hit the 5 linked devices limit?
