Whisperfish - The unofficial SailfishOS Signal client

How quickly did you complete the process? You only have say 20 seconds to enter the details before you are timed out and the code expires.

20s???
I already tried as fast as I could. Maybe I will try it again, this time (hopefully) faster

Iā€™ve tried it again and measured the time. It took me less than 20s and it still didnā€™t work :frowning:

Has anybody a tip on how to complete the registration faster? (If the time even is the problem)

I doubt time is the problem. I also tried again a few times and I can complete the steps well before the captcha in the browser says ā€˜verification expiredā€™. Iā€™m putting the ā€˜prefixā€™ dropdown to my country code, and then putting my phone number without the leading zero. I assume that is correct because if I put the zero I get an error 400 bad request instead, and whisperfish shows and error and needs to restart.

Iā€™ve been using Whisperfish for a few years now. Itā€™s a fantastic product, and Iā€™m glad to see that itā€™s being kept alive.

3 Likes

I finally managed to register!! :partying_face:

But now I have another problem: I can correctly receive messages, but I canā€™t send them. When I try it with --verbose , the last lines read this:

[2022-05-26T18:12:24Z DEBUG libsignal_service_actix::push_service] HTTP request PUT https://chat.signal.org/v1/messages/9d2f3c66-7614-4d3d-82df-93d7ae67c96a
[2022-05-26T18:12:25Z DEBUG libsignal_service_actix::push_service] AwcPushService::put response: 
    ClientResponse HTTP/1.1 428 Precondition Required
      headers:
        "x-signal-timestamp": "1653588745215"
        "date": "Thu, 26 May 2022 18:12:25 GMT"
        "content-type": "application/json"
        "content-length": "88"
        "connection": "keep-alive"
        "retry-after": "86400"
    
[2022-05-26T18:12:25Z TRACE libsignal_service_actix::push_service] Unhandled response with body: Ok(b"{\"token\":\"ac61d6db-7316-483f-8fc6-ee1ebe9956a1\",\"options\":[\"recaptcha\",\"pushChallenge\"]}")
[2022-05-26T18:12:25Z ERROR harbour_whisperfish::worker::client] Sending message: Error sending message: Unexpected response: HTTP 428

Is this new, or has anybody already solved this?

1 Like

It looks like Signal servers have determined that you must pass another reCaptcha (or ā€œpushChallengeā€) in order to send messages, for whatever reason that may beā€¦ I canā€™t give you answers, but I can ask you for more details:

  • Is it a new-new registration, or has it ever been registered to Signal before?
    • If yes, do you still have Android/iPhone Signal installed and running?
    • If yes, did you activate the registration lock? (I guess not, because you did register successfully)

How did you manage to do it?

  1. it is NOT a new-new registration, I have recently switched from /e/OS to SailfishOS, so I did use the Android-Signal-Client before
  2. Yes, I still had an Android-Client running, but I assumed that would be deactivated automatically if I register on a new device/with a new clientā€¦?
  3. I did NOT activate the registration lock

@d.geelen When I connect to my phone via SSH and then use the command it does not work. However, if I use the command directly, like it states in the wiki: ssh defaultuser@[target] harbour-whisperfish --verbose --captcha '<THE URL HERE>' it works.

I donā€™t know why this is the case and it doesnā€™t make any sense (at least to me), but this method works reliably (I used it two times this day).

@NIS Okay, that sheds some light. I think the captcha didnā€™t work correctly, the Android Signal client messes things up - possibly both.

I suggest you (make a backup and) uninstall the Android Signal client. It canā€™t be active at the same time.

I also suggest you clear the Whisperfish data dirs and try to register again. This time use the intermediate file trick, because it looks like some component between your computers clipboard and harbour-whisperfish binary disturbs the long captcha string. Itā€™s slightly more complex, more reliable.

Thank you for your help, I will try that tomorrow.

If it fails again, I will report back :upside_down_face:

As far as I know, none of these should matter.

We seem to bounce on a rate limiter, implemented one year ago, Signal-Android commit 31e1c6f7aa.

Maybe try again tomorrow (sending a message). If that doesnā€™t work, we need to implement something around the 428.

I tried it again with the steps @direc85 suggested. It still does not work. I can receive messages, but I canā€™t send them. It just shows the circle-icon:

It also still prints out the same error message (428):

    [2022-05-27T11:57:17Z DEBUG libsignal_service_actix::push_service] HTTP request PUT https://chat.signal.org/v1/messages/da3c83ad-8c45-4d14-87d5-e164fc584d92
    [2022-05-27T11:57:18Z DEBUG libsignal_service_actix::push_service] AwcPushService::put response: 
        ClientResponse HTTP/1.1 428 Precondition Required
          headers:
            "connection": "keep-alive"
            "date": "Fri, 27 May 2022 11:57:18 GMT"
            "content-type": "application/json"
            "content-length": "88"
            "retry-after": "86400"
            "x-signal-timestamp": "1653652638324"
    
[2022-05-27T11:57:18Z TRACE libsignal_service_actix::push_service] Unhandled response with body: Ok(b"{\"token\":\"6090bb08-659a-47ea-824e-7c38ee61fc4d\",\"options\":[\"recaptcha\",\"pushChallenge\"]}")
[2022-05-27T11:57:18Z ERROR harbour_whisperfish::worker::client] Sending message: Error sending message: Unexpected response: HTTP 428

Hi, thanks for testing! Iā€™ve filed two bugs, representing two parts of this issue.

The first one represents the case that these 428ā€™s appear and annoy a user (which is quite a severe case), and can be potentially fixed with a workaround.

The second represents the fact that Signal implemented the 428ā€™s, and should be implemented in the way Signal intends us to: show a new captcha.

2 Likes

So, is there a workaround I can use in the meantime?

Not that I know, sorry. Iā€™m pinging the Axolotl people, maybe theyā€™ve heard it before. Iā€™ve had a very quick skim through the Signal source code. Either they have added Whisperfish to their list of UAā€™s (and they didnā€™t publish), or Iā€™m overseeing something, because I donā€™t see why it would send you a 428 (except if youā€™re somehow spoofing a Signal UA, but that would mean you compiled WF from source and changed some stuff).

Oh, something that you can try: thereā€™s a ā€œretry afterā€ header. Close Whisperfish for at least 24 hours. Start it again. It may work.

1 Like

Thank you, I also managed to register now. Iā€™m not convinced that the solution is the different ssh command, because like you say that makes no sense, and I re-registered today (because the first time I put a password, but I didnā€™t release that it was for the app, not for a signal account). Yesterday registration indeed worked first try, but today I had to try 5 or 6 times before it worked. So likely the answer is indeed either to be faster, or just keep trying until eventually it succeeds.

Re. your issue with sending messages I can say that all my contacts seem to later registrations, so I canā€™t initiate a conversation, but once they talk to me it does seem to work. I.e. I can reply to them and they receive the message. I havenā€™t verified this yet with my new registration (waiting for someone to say something :p).

One thing that didnā€™t work was sending a picture, that did get stuck on the circle icon, and didnā€™t show as a message on the other end. I donā€™t have logs for this (yet).

OK, that means itā€™s limited to one specific case for now. I think the ā€œwait 24 hoursā€ will help. Letā€™s hope. That would reduce the severity of the bug by a lot.

Attachments seem to have broken recently. @direc85 was writing up an issue for that later