Whisperfish

An unofficial Signal client for Sailfish OS

What is Whisperfish?

Whisperfish is an unofficial, third-party native Signal client for Sailfish OS. You can install it from OpenRepos or from the package registry.

Current status

Currently broken

Group reception wedged when DME retry receipt hits a stale identity

receiving · broken · started 2026-08-30 · Updated 2026-09-01

After the dme-sender release (v0.6.0-beta.44), group reception can get stuck for contacts who have a stale, mismatched identity stored locally (e.g. they re-registered or changed devices): their group messages still arrive but stop decrypting, and reception stays wedged until a 1:1 exchange surfaces the stale identity. Fix under review, not yet merged or shipped.

Technical details

The dme-sender release added a retry receipt (DecryptionErrorMessage / DME) so a group message failing to decrypt with NoSenderKeyState self-heals: the receiver asks the sender to re-share its sender key. That DME is delivered over the 1:1 encrypted channel, whose session establishment runs process_prekey_bundle and gates on is_trusted_identity. When the group sender has a stored, mismatched identity locally (e.g. they re-registered, or a prior 1:1 exchange left a stale key), the DME send failed with UntrustedIdentity and was logged-and-dropped, leaving group reception from that sender wedged until a 1:1 exchange surfaced the stale identity on the receive-side reset path. The identity-trust gap itself is long-standing; the regression is that the new DME path relied on that channel being reachable without recovering a stale identity itself. Fix on MR !822: run the same identity recovery as the receive side (recover_untrusted_identity) on the DME send's UntrustedIdentity, then retry the DME once, and don't let the recovered-identity failure poison the per-(recipient,device,distribution_id) rate-limit slot.

References: whisperfish!822

Registration error misreporting

registration · flaky · started 2026-07-08 · Updated 2026-07-15

Registering Whisperfish as a primary device can fail for various reasons, but errors (e.g. registration lock) are ill-reported. Linking as a secondary device works as a workaround.

References: whisperfish#746 , whisperfish!801

Recently resolved

Sharing to Whisperfish invisible

shareplugin · broken · started 2026-06-28 · Resolved 2026-07-14 · Updated 2026-07-14

Sharing images (e.g. from Gallery) to Whisperfish doesn't show Whisperfish as a share target.

Fixed in 1.2.0 (commit 8623717).

Linking as secondary device broken

linking · broken · started 2026-07-01 · Resolved 2026-07-09 · Updated 2026-07-09

Linking a new secondary device failed because Whisperfish expected a master_key it no longer receives from Signal. The fix is merged but not yet released.

Fixed in v0.6.0-beta.43 (commit c8744290).

Support & community