Skip to content

Registration with captcha

Wayne Workman edited this page Aug 7, 2021 · 22 revisions

Sometimes the Signal server requires a captcha token for registering a new account. If your IP address is not deemed trustworthy enough, the registration fails with a captcha required error (Captcha invalid or required for verification).

To get the token, go to https://signalcaptchas.org/registration/generate.html

After filling the captcha, the site doesn't show the token but redirects to a signalcaptcha:// url that contains the token. On mobile devices that url is handled by the apps. To see the URL you can open the browser developer tools (F12) before completing the captcha. Hint: Enable the option "Persist Logs" in the "Console Settings" to prevent clearing the console each time navigating to a new page.

Check the console in the developer tools for a redirect starting with signalcaptcha:// Everything after signalcaptcha:// is the captcha token.

Using Linux with Firefox, you are prompted what program to open the link with. You can create the following python file. You must set this script as executable. After completing the captcha and prompted for how to open, browse to this script and select it. This script will output the captcha link to /tmp/captcha.txt

#!/usr/bin/python3
from sys import argv

def write_file(content,file):
    fh = open(file,'w')
    fh.write(content)
    fh.close()

write_file(str(argv[1]), "/tmp/captcha.txt")

Then execute the register command again with the --captcha argument (https://github.com/AsamK/signal-cli/blob/master/man/signal-cli.1.adoc#register)

signal-cli -u USERNAME register --captcha 03AG...Uonw

If you do not get any error, you can proceed with the verify command.

If you get the error Invalid captcha given. Just try to do the re-captcha again. It seems the code is good for a very short period of time, and if you aren't exactly accurate with the captcha challenge, the you'll still get a code but it won't work. So, just try again. On my 4th try, I guess I finally got it right.

Clone this wiki locally