Whisperfish - The unofficial SailfishOS Signal client

After entering verification code.

Ah, you have registration lock enabled. Frequently Asked Questions Ā· Wiki Ā· Whisperfish / Whisperfish - Signal on Sailfish OS Ā· GitLab

Disable the registration lock on the old device in the Settings menu of the Signal app:

  • For Android, this seems to be: Settings ā†’ Privacy ā†’ Registration lock,
  • and for iOS this is seemingly: Account ā†’ Signal PIN ā†’ Registration lock.

Relevant issue: Implement unlocking upon a registration lock (HTTP 423 with PIN-entry) (#148) Ā· Issues Ā· Whisperfish / Whisperfish - Signal on Sailfish OS Ā· GitLab

Just to say that the latest update works without issues here on a community port vollaphone with 4.4.0.64. Thanks!

2 Likes

The initial post is now more wiki-style :slight_smile:

Iā€™ll put the change logs from now there. Everyone is welcome to edit it, if thereā€™s something you spot that could be better! Keep it concise and link to issues as much as possible. :heart:

4 Likes

After your Releasenotes, I wanted to give Whisperfish a try. Everything seems to work properly (Registration, start a chat with a person from contacts). However, after closing Whisperfish, I have to start the registration procedure again. If I start Whisperfish from cli, it states Could not open config file: home/defaultuser/.config/harbour-whisperfish/config.yml

in .config only the folder ā€œharbour-file-browserā€ exists.

2 Likes

I think you can fix it by creating the folder and file (I havenā€™t tested this myself yet):

mkdir /home/defaultuser/.config/harbour-whisperfish
touch /home/defaultuser/.config/harbour-whisperfish/config.yml

Then, as the folder and file exist, Whisperfish registration should be permanent. When you try that, launch Whisperfish from command line to get the logs out (donā€™t forget to censor the log, if you post its contents here):

harbour-whisperfish --verbose

Please note that you may not be able to register right away; at least I hit a re-registration cooldown of some sorts yesterday.

This issue stems from Whisperfish being not-yet-completely migrated to the new Sailjail-dictated paths. Iā€™m quite sure I tested installing beta.10 in a completely clean setup yesterday, but I guess I forgot somethingā€¦

Itā€™s time to complete the migration for goodā€¦ *rolls sleeves*

4 Likes

I created the files but whisperfish does not storing itā€™s config permanentlyā€¦

I had the same issue. My solution was to install the beta 8, 9 and 10 files after each other.
(This might not be necessary: In the settings I chose ā€œBackground Modeā€.)
I hope it works for you as well!

That actually might work; should an older version of Whisperfish be Sailjail opt-out (canā€™t remember off the top of my head), it creates the storage folders persistently.

Anyway, I completed the migrations yesterday and itā€™s under review and testing (the status is ā€œwell it worked for my daily driver but I still made a backup before and afterā€), so the proper fix should be out Soonā„¢

2 Likes

Hello! Thank you for the great work you are doing with the Whisperfish!
I installed beta 10 successfully to my Xperia 10 III (4.4.0.68).
The registration works! Wuhuu!!
But every time I close the app and start it again, the app wants to do the registration again.
Any ideas how to tackle this problem?

Not a bug: Would be nice if I could use a PIN code with four numbers just like official Signal client allows to do. Currently Whisperfish(?) requires 6 digits as passwordā€¦I guess there might be a reason to require 6 digits?

Thanks for the comment! The numeric keypad for the password could very well be something worth considering :slight_smile: I donā€™t know the story behind the 6-digit minimum, but as Signal does use the 4-digit limit, this could perhaps be considered, too.

The previous five-ish posts tackle with the registration issue. I think itā€™s beta.7 that was the last pre-Sailjail version, so installing that and starting it once may work as a workaround (you canā€™t register with it sadly), but some users had success starting with beta.8 too.

Starting the application from the command line could work too, but I havenā€™t tested it.

Another solution that could work to get past the initial config and storage directory issue is to temporarily disable Sailjail from the desktop file. You could modify /usr/share/applications/harbour-whisperfish.desktop to do that.

Please not that this approach, too, is untested for this specific issue:

[X-Sailjail]
#Permissions=Internet;Pictures;Contacts;Notifications;Phone;Privileged;Mozilla;MediaIndexing;Downloads;UserDirs;WebView;Camera;RemovableMedia
#OrganizationName=be.rubdos
#ApplicationName=harbour-whisperfish
Sandboxing=Disabled

After that try to register, and after thatā€™s done, close Whisperfish and remove the Disabled line and uncomment the three lines.

Edit: I added this to known issues in the opening post, too.

1 Like

I can write a bit about that :slight_smile:

The 6-digit code you use in Whisperfish is used to encrypt the local storage. The intention is to get rid of this in favour of Sailfish Secrets at some point.

The 4-digit code in Signal is used to for secure value recovery. Itā€™s used for back-up and restore from Signalā€™s servers for certain data. Whisperfish currently does not implement this.

1 Like

I am delighted by your work, you are making possible a vital thing for the community - having a native communicator.

To the day, I was using the android signal app, but I wanted to make a switch. I have installed the beta 10 release on 10 II (4.4.0.64) and faced several issues. The first one was resolved in previous posts - lost registration after whisperfish quit (installing beta 8 to create initial directories). The next two issues are:

  1. I am unable to send the first message to any contact (failure status). This changes as soon as a contact messages me first, or I send the first message through signal-desktop. I am attaching a screenshot of verbose terminal output when this happens.
  2. Background daemon of whishperfish appears not to be working. As soon as I close WF I do not receive any messages. I cannot see any processes in ps named whisperfish after closing WF.

At last I have a question about functionality - reading this issue Track read status of messages per message instead of per session (#283) Ā· Issues Ā· Whisperfish / Whisperfish - Signal on Sailfish OS Ā· GitLab, I assume that currently messages have only ā€˜deliveredā€™ status, and ā€˜readā€™ status is not tracked at all.

1 Like

Ah yes, sorry, missed that in a hurry :slight_smile:
Iā€™ll be waiting for the next release :+1:

Couldnā€™t resist, I tried the method; created the config file, used the touch and tried to start Whisperfish from cli.
The result was this; ā€œConfig file not found,: Could not read config file: /home/deafultuser/.config/harbour-whisperfishā€ and then more or less the same thing ā€œCould not open the file for write yadda yaddaā€.

Maybe I should be just waiting for the next releaseā€¦ :face_with_hand_over_mouth:

Thank you for your great work! Iā€™ve wanted to switch to Whisperfish instead of the Android-app ever since I started using SailfishOS.
The registration works fine now, which I really apreciate.

However, I still encounter an issue: today, I downloaded the new update and registered. Everything worked fine, I could send messages and attatchments. However, a restart of the phone later (I donā€™t know if this caused the problem, but I wanted to mention it just to be sure), my messages canā€™t be sent anymore, like seen on the screenshot below. Iā€™ve also provided the verbose-output below.

    [2022-07-14T17:02:25Z DEBUG libsignal_service_actix::push_service] HTTP request PUT https://chat.signal.org/v1/messages/ea13c6e8-5c87-47a3-97d8-412224941747
[2022-07-14T17:02:26Z DEBUG libsignal_service_actix::push_service] AwcPushService::put response: 
    ClientResponse HTTP/1.1 428 Precondition Required
      headers:
        "content-type": "application/json"
        "connection": "keep-alive"
        "content-length": "88"
        "date": "Thu, 14 Jul 2022 17:02:26 GMT"
        "retry-after": "86400"
        "x-signal-timestamp": "1657818146056"
    
[2022-07-14T17:02:26Z TRACE libsignal_service_actix::push_service] Unhandled response with body: Ok(b"{\"token\":\"581d7370-76e9-4942-b001-518c11c7a9f1\",\"options\":[\"recaptcha\",\"pushChallenge\"]}")
[2022-07-14T17:02:26Z TRACE harbour_whisperfish::store] Setting message 43 to failed
[2022-07-14T17:02:26Z ERROR harbour_whisperfish::worker::client] Sending message: Error sending message: Unexpected response: HTTP 428
[2022-07-14T17:02:26Z TRACE harbour_whisperfish::model::message] Mark message 43 failed'
[2022-07-14T17:02:26Z TRACE harbour_whisperfish::model::session] QML request is_typing
[2022-07-14T17:02:26Z TRACE harbour_whisperfish::model::session] QML request is_typing
[2022-07-14T17:02:26Z TRACE harbour_whisperfish::model::session] QML request is_typing
[2022-07-14T17:02:26Z TRACE harbour_whisperfish::model::session] QML request is_typing
[2022-07-14T17:02:26Z TRACE harbour_whisperfish::model::session] QML request is_typing
[2022-07-14T17:02:26Z TRACE harbour_whisperfish::model::session] QML request is_typing
[2022-07-14T17:02:26Z TRACE harbour_whisperfish::model::session] QML request typing
[D] sendTypingToHeader:70 - onTypingChanged for 1 : []
[2022-07-14T17:02:26Z TRACE harbour_whisperfish::model::session] QML request typing
[D] sendTypingToHeader:70 - onTypingChanged for 2 : []
[2022-07-14T17:02:26Z TRACE harbour_whisperfish::model::session] QML request is_typing
[2022-07-14T17:02:26Z TRACE harbour_whisperfish::model::session] QML request typing
[D] sendTypingToHeader:70 - onTypingChanged for 3 : []
[2022-07-14T17:02:28Z TRACE libsignal_service_actix::websocket] Triggering keep-alive
[2022-07-14T17:02:28Z TRACE libsignal_service::messagepipe] Sending request WebSocketRequestMessage { verb: Some("GET"), path: Some("/v1/keepalive"), body: None, headers: [], id: Some(1657818148712) }
[2022-07-14T17:02:28Z TRACE libsignal_service::messagepipe] request on route.
[2022-07-14T17:02:28Z TRACE libsignal_service::messagepipe] Decoded WebSocketMessage { r#type: Some(Response), request: None, response: Some(WebSocketResponseMessage { id: Some(1657818148712), status: Some(200), message: Some("OK"), headers: ["Content-Length:0"], body: None }) }

Thank you!

That was an unfortunate bug to run into, but it has been practically fixed in development. Glad to hear beta.8 worked for you as well!

This might need identity key reset (not sure, perhaps Ruben could verify?) which can be done as follows: 1) enable debug mode in settings 2) go to the contact session 3) go to the contact info page on the right 4) select reset identity key 5) disable debug mode. This all is getting better down the line, and is definitely high on the to-do list!

Background mode has been broken for months now, and it requires quite a bit of workā€¦ I think we should just disable the option temporarily to make it obvious.

Iā€™m not that familiar with message statuses and which statuses are actually supported, but I think itā€™s quite safe to assume that this is the case :slight_smile: Thereā€™s a lot to do in many fronts, and once some other major obstacles are taken care of, this will improve too.

It looks like installing beta.8 and starting it once before updating back to beta.10 should fix the losing config issue, so please try that! Once it survives one restart, it works fine.

It seems you have ran into this issue ā€“ Signal seems to rate limit new users. And you do have the Android app removed, right (with a backup made)? It canā€™t be installed/registered at the same time.

1 Like

As Iā€™ve tried using Whisperfish so many times, Iā€™m quite familiar with how it works now :grinning_face_with_smiling_eyes:and have of course uninstalled the Android-App

So, if it rate LIMITS users, the issue should be gone with time, right?

1 Like

I had the same issue. My solution was a linked Signal Desktop. I sent a message to a contact via the desktop application and from then on I have been able to send messages to that contact normally again.

1 Like

Am I the only one who canā€™t read beyond messages from november 2020 on the sfos forum app? There are way too many posts on this thread for it to be a wiki and dream of life everlasting. What about opening a new thread 2022 with the same intro?

2 Likes

Kiitos! I got it working. I needed to delete all the Whisperfish folders because Whisperfish did not want to start anymore after the ā€œconfig file methodā€. Then I got Whisperfish back to its feet and could first install beta 8 and then beta 10. After that everything runs nicely.

It feels extra nice, because Iā€™ve been looking for the Whisperfish about 2 years now and never got it working. But now it does, and Iā€™m able to switch Android App support off! Thanks Direc85 and Rubdos! :ok_hand:

4 Likes