Account verification fails with a 401
Versions
Using signald/signald:0.23.1
:
root@signald-9579b9846-wgfr2:/# signaldctl version
┌────────────┬─────────┬────────┬──────────────────────────────────────────┐
│ NAME │ VERSION │ BRANCH │ COMMIT │
├────────────┼─────────┼────────┼──────────────────────────────────────────┤
│ signaldctl │ │ main │ 097e95bdb11dd3244b684d31300c1632dbb5d242 │
│ signald │ 0.23.1 │ 0.23.1 │ 19551f5d599dfa135cacee03b44226d56a6d4a9c │
└────────────┴─────────┴────────┴──────────────────────────────────────────┘
What's happening
When registering a new number, the verification fails with a 401
:
│ 11:53:31.330 [main] DEBUG io.finn.signald.Main - Connection from pid 145 uid 0 │
│ 11:53:31.336 [f8t3vvmczv-verify] DEBUG io.finn.signald.clientprotocol.ClientConnection - handling verify request with ID f8t3vvmczv │
│ 11:53:33.176 [f8t3vvmczv-verify] ERROR io.finn.signald.clientprotocol.v1.exceptions.InternalError - error verifying account │
│ org.whispersystems.signalservice.api.push.exceptions.AuthorizationFailedException: [401] Authorization failed! │
│ at org.whispersystems.signalservice.internal.push.PushServiceSocket.validateServiceResponse(PushServiceSocket.java:1758) ~[signal-service-java-x86_64-unknown-linux-gnu-2.15.3_unofficial_50_signald_2.jar:?] │
│ at org.whispersystems.signalservice.internal.push.PushServiceSocket.makeServiceRequest(PushServiceSocket.java:1735) ~[signal-service-java-x86_64-unknown-linux-gnu-2.15.3_unofficial_50_signald_2.jar:?] │
│ at org.whispersystems.signalservice.internal.push.PushServiceSocket.makeServiceRequest(PushServiceSocket.java:1717) ~[signal-service-java-x86_64-unknown-linux-gnu-2.15.3_unofficial_50_signald_2.jar:?] │
│ at org.whispersystems.signalservice.internal.push.PushServiceSocket.makeServiceBodyRequest(PushServiceSocket.java:1706) ~[signal-service-java-x86_64-unknown-linux-gnu-2.15.3_unofficial_50_signald_2.jar:?] │
│ at org.whispersystems.signalservice.internal.push.PushServiceSocket.makeServiceRequest(PushServiceSocket.java:1642) ~[signal-service-java-x86_64-unknown-linux-gnu-2.15.3_unofficial_50_signald_2.jar:?] │
│ at org.whispersystems.signalservice.internal.push.PushServiceSocket.writeProfile(PushServiceSocket.java:862) ~[signal-service-java-x86_64-unknown-linux-gnu-2.15.3_unofficial_50_signald_2.jar:?] │
│ at org.whispersystems.signalservice.api.SignalServiceAccountManager.setVersionedProfile(SignalServiceAccountManager.java:917) ~[signal-service-java-x86_64-unknown-linux-gnu-2.15.3_unofficial_50_signald_2.jar:?] │
│ at io.finn.signald.RegistrationManager.verifyAccount(RegistrationManager.java:132) ~[signald.jar:?] │
│ at io.finn.signald.clientprotocol.v1.VerifyRequest.run(VerifyRequest.java:80) ~[signald.jar:?] │
│ at io.finn.signald.clientprotocol.v1.VerifyRequest.run(VerifyRequest.java:35) ~[signald.jar:?] │
│ at io.finn.signald.clientprotocol.Request.<init>(Request.java:146) ~[signald.jar:?] │
│ at io.finn.signald.clientprotocol.ClientConnection$RequestRunner.run(ClientConnection.java:160) ~[signald.jar:?] │
│ at java.lang.Thread.run(Unknown Source) ~[?:?] │
│ 11:53:33.178 [connection-pid-145] INFO io.finn.signald.clientprotocol.ClientConnection - Client disconnected
Also, the account is still registered even after hitting this error and subsequent verifications fail with:
2023/01/01 11:51:41 account has already been verified
One has to remove the account before trying again.
What's expected
The verification succeeds.
Steps to reproduce
signaldctl account register +xxxxxxxxxxx -V -c "signal-recaptcha-v2.6..."
signaldctl account verify +xxxxxxxxxxx 123456
Edited by Guillaume Hérail