Can't register headscale as an alternate server #1162

Open
opened 2025-12-29 02:28:40 +01:00 by adam · 8 comments
Owner

Originally created by @europacafe on GitHub (Nov 29, 2025).

Is this a support request?

  • This is not a support request

Is there an existing issue for this?

  • I have searched the existing issues

Current Behavior

Headscale 0.27.1
I've been running Headscale and tailscale clients for years on my Android phone without problems. Lately, I had to reinstall Tailscale 1.90.9 from scratch, and when I entered my https://headscale.mydomain.com as an alternate server on my Android phone, the app didn't register it. No error message.

Below are headscale log entries when I tried to add headscale server to Tailscale on Android phone.

I tried downgrading Tailscale client to 1.88.4, but it still behaves the same

Expected Behavior

When entering https://headscale.mydomain.com as an alternate server on Tailscale client app, the server should be registered so that I can proceed with adding my phone as a new node.

Steps To Reproduce

  1. open Tailscale app on Android phone
  2. Settings-->Account, use an alternate server
  3. Enter headscale url https://headscale.mydomain.com
  4. press "Add account" button

I've tried clearing app data, but it didn't help.

Environment

- OS: Android 12 SKQ1.211006.001
- Headscale version: 0.27.1
- Tailscale version: 1.90.4, 1.88.4
- Number of nodes: 18

Runtime environment

  • Headscale is behind a (reverse) proxy
  • Headscale runs in a container

Debug information

Image
Originally created by @europacafe on GitHub (Nov 29, 2025). ### Is this a support request? - [x] This is not a support request ### Is there an existing issue for this? - [x] I have searched the existing issues ### Current Behavior Headscale 0.27.1 I've been running Headscale and tailscale clients for years on my Android phone without problems. Lately, I had to reinstall Tailscale 1.90.9 from scratch, and when I entered my `https://headscale.mydomain.com` as an alternate server on my Android phone, the app didn't register it. No error message. Below are headscale log entries when I tried to add headscale server to Tailscale on Android phone. I tried downgrading Tailscale client to 1.88.4, but it still behaves the same ### Expected Behavior When entering https://headscale.mydomain.com as an alternate server on Tailscale client app, the server should be registered so that I can proceed with adding my phone as a new node. ### Steps To Reproduce 1. open Tailscale app on Android phone 2. Settings-->Account, use an alternate server 3. Enter headscale url `https://headscale.mydomain.com` 4. press "Add account" button I've tried clearing app data, but it didn't help. ### Environment ```markdown - OS: Android 12 SKQ1.211006.001 - Headscale version: 0.27.1 - Tailscale version: 1.90.4, 1.88.4 - Number of nodes: 18 ``` ### Runtime environment - [x] Headscale is behind a (reverse) proxy - [x] Headscale runs in a container ### Debug information <img width="872" height="157" alt="Image" src="https://github.com/user-attachments/assets/95bfab52-280c-4069-a2bc-d2e576dd3674" />
adam added the questionbug labels 2025-12-29 02:28:40 +01:00
Author
Owner

@kpalang commented on GitHub (Nov 29, 2025):

I too am seeing similar behavior, although haven't yet tried downgrading headscale.

So, I'm running Headscale 0.27.1 using the official .deb package downloaded from GH Releases. I've set up my TLS config, but I have a feeling Headscale is not requesting a TLS cert as the ./cache directory mentioned in tls_letsencrypt_cache_dir: /var/lib/headscale/cache is not created.

Further debug info:

  • server_url: https://tailscale.mydomain.com:443
  • tls_letsencrypt_hostname: "tailscale.mydomain.com"
Nov 29 17:03:32 headscale systemd[1]: Started headscale.service - headscale coordination server for Tailscale.
Nov 29 17:03:33 headscale headscale[10423]: 2025-11-29T17:03:33Z INF Opening database database=sqlite3 path=/var/lib/headscale/db.sqlite
Nov 29 17:03:33 headscale headscale[10423]: 2025-11-29T17:03:33Z INF Starting Headscale commit=f658a8eacd4d86edc65424b50635afed46ca4b2a version=v0.27.1+dirty
Nov 29 17:03:33 headscale headscale[10423]: 2025-11-29T17:03:33Z INF Clients with a lower minimum version will be rejected minimum_version=v1.64.0
Nov 29 17:03:33 headscale headscale[10423]: 2025-11-29T17:03:33Z INF Enabling remote gRPC at 127.0.0.1:50443
Nov 29 17:03:33 headscale headscale[10423]: 2025-11-29T17:03:33Z INF listening and serving gRPC on: 127.0.0.1:50443
Nov 29 17:03:33 headscale headscale[10423]: 2025-11-29T17:03:33Z INF listening and serving HTTP on: 127.0.0.1:8080
Nov 29 17:03:33 headscale headscale[10423]: 2025-11-29T17:03:33Z INF listening and serving debug and metrics on: 127.0.0.1:9090
@kpalang commented on GitHub (Nov 29, 2025): I too am seeing similar behavior, although haven't yet tried downgrading headscale. So, I'm running Headscale 0.27.1 using the official `.deb` package downloaded from GH Releases. I've set up my TLS config, but I have a feeling Headscale is not requesting a TLS cert as the `./cache` directory mentioned in `tls_letsencrypt_cache_dir: /var/lib/headscale/cache` is not created. Further debug info: - `server_url: https://tailscale.mydomain.com:443` - `tls_letsencrypt_hostname: "tailscale.mydomain.com"` ``` Nov 29 17:03:32 headscale systemd[1]: Started headscale.service - headscale coordination server for Tailscale. Nov 29 17:03:33 headscale headscale[10423]: 2025-11-29T17:03:33Z INF Opening database database=sqlite3 path=/var/lib/headscale/db.sqlite Nov 29 17:03:33 headscale headscale[10423]: 2025-11-29T17:03:33Z INF Starting Headscale commit=f658a8eacd4d86edc65424b50635afed46ca4b2a version=v0.27.1+dirty Nov 29 17:03:33 headscale headscale[10423]: 2025-11-29T17:03:33Z INF Clients with a lower minimum version will be rejected minimum_version=v1.64.0 Nov 29 17:03:33 headscale headscale[10423]: 2025-11-29T17:03:33Z INF Enabling remote gRPC at 127.0.0.1:50443 Nov 29 17:03:33 headscale headscale[10423]: 2025-11-29T17:03:33Z INF listening and serving gRPC on: 127.0.0.1:50443 Nov 29 17:03:33 headscale headscale[10423]: 2025-11-29T17:03:33Z INF listening and serving HTTP on: 127.0.0.1:8080 Nov 29 17:03:33 headscale headscale[10423]: 2025-11-29T17:03:33Z INF listening and serving debug and metrics on: 127.0.0.1:9090 ```
Author
Owner

@nblock commented on GitHub (Dec 10, 2025):

Nov 29 17:03:33 headscale headscale[10423]: 2025-11-29T17:03:33Z INF Enabling remote gRPC at 127.0.0.1:50443
Nov 29 17:03:33 headscale headscale[10423]: 2025-11-29T17:03:33Z INF listening and serving gRPC on: 127.0.0.1:50443
Nov 29 17:03:33 headscale headscale[10423]: 2025-11-29T17:03:33Z INF listening and serving HTTP on: 127.0.0.1:8080
Nov 29 17:03:33 headscale headscale[10423]: 2025-11-29T17:03:33Z INF listening and serving debug and metrics on: 127.0.0.1:9090

It seems that no client connected? Otherwise, on 0.27.x, you'd see something like Starting node registration using …. Can you successfully connect to your Headscale with a browser / curl?

@nblock commented on GitHub (Dec 10, 2025): > Nov 29 17:03:33 headscale headscale[10423]: 2025-11-29T17:03:33Z INF Enabling remote gRPC at 127.0.0.1:50443 > Nov 29 17:03:33 headscale headscale[10423]: 2025-11-29T17:03:33Z INF listening and serving gRPC on: 127.0.0.1:50443 > Nov 29 17:03:33 headscale headscale[10423]: 2025-11-29T17:03:33Z INF listening and serving HTTP on: 127.0.0.1:8080 > Nov 29 17:03:33 headscale headscale[10423]: 2025-11-29T17:03:33Z INF listening and serving debug and metrics on: 127.0.0.1:9090 It seems that no client connected? Otherwise, on 0.27.x, you'd see something like `Starting node registration using …`. Can you successfully connect to your Headscale with a browser / curl?
Author
Owner

@nblock commented on GitHub (Dec 10, 2025):

Lately, I had to reinstall Tailscale 1.90.9 from scratch, and when I entered my https://headscale.mydomain.com as an alternate server on my Android phone, the app didn't register it. No error message.

What happens when you accept the node registration key that is printed in the logs?

@nblock commented on GitHub (Dec 10, 2025): > Lately, I had to reinstall Tailscale 1.90.9 from scratch, and when I entered my `https://headscale.mydomain.com` as an alternate server on my Android phone, the app didn't register it. No error message. What happens when you accept the node registration key that is printed in the logs?
Author
Owner

@nblock commented on GitHub (Dec 20, 2025):

Just tried to register Tailscale Android 1.90.9 on a Headscale 0.28.0-beta.1 instance with a regular https URL and a Let's Encrypt certificate following the steps outlined in the docs and it worked on first try.

Could you please test 0.28.0-beta.1 and in case it fails provide debug information as outlined in the issue template and in https://headscale.net/stable/ref/debug/?

@nblock commented on GitHub (Dec 20, 2025): Just tried to register Tailscale Android 1.90.9 on a Headscale 0.28.0-beta.1 instance with a regular https URL and a Let's Encrypt certificate following the steps outlined in the [docs](https://headscale.net/development/usage/connect/android/#connect-via-normal-interactive-login) and it worked on first try. Could you please test [0.28.0-beta.1](https://github.com/juanfont/headscale/releases/tag/v0.28.0-beta.1) and in case it fails provide debug information as outlined in the issue template and in https://headscale.net/stable/ref/debug/?
Author
Owner

@europacafe commented on GitHub (Dec 21, 2025):

Thanks for the update. I've installed the latest beta as you suggested. It still has the same issue as described earlier.
My other existing nodes are still working fine, but I can't register my headscale as an alternate server. (Tailscale Android app v1.92.3)

One thing I noticed is after I cleared data on Tailscale app and started registering headscale server from scratch, nothing happened as usual, but after a few second, tailscale client UI displayed an exclaimation mark. When I clicked to see the message

Image

Headscale log just show the key, nothing else

Image
@europacafe commented on GitHub (Dec 21, 2025): Thanks for the update. I've installed the latest beta as you suggested. It still has the same issue as described earlier. My other existing nodes are still working fine, but I can't register my headscale as an alternate server. (Tailscale Android app v1.92.3) One thing I noticed is after I cleared data on Tailscale app and started registering headscale server from scratch, nothing happened as usual, but after a few second, tailscale client UI displayed an exclaimation mark. When I clicked to see the message <img width="426" height="947" alt="Image" src="https://github.com/user-attachments/assets/617cd659-2594-4014-9502-96f8a14fb64f" /> Headscale log just show the key, nothing else <img width="622" height="118" alt="Image" src="https://github.com/user-attachments/assets/eea96eb3-f5a8-4276-b9b4-e390b3f12c94" />
Author
Owner

@nblock commented on GitHub (Dec 21, 2025):

One thing I noticed is after I cleared data on Tailscale app and started registering headscale server from scratch

So you don't see the usual Headscale instructions page for machine registration? Are you able to connect to your Headscale on /windows from the browser on your phone?

@nblock commented on GitHub (Dec 21, 2025): > One thing I noticed is after I cleared data on Tailscale app and started registering headscale server from scratch So you don't see the usual Headscale instructions page for machine registration? Are you able to connect to your Headscale on `/windows` from the browser on your phone?
Author
Owner

@europacafe commented on GitHub (Dec 21, 2025):

/windows displays as usual.

@europacafe commented on GitHub (Dec 21, 2025): /windows displays as usual.
Author
Owner

@nblock commented on GitHub (Dec 21, 2025):

/windows displays as usual.

Can you provide some debug logs from the phone via adb logcat …?

@nblock commented on GitHub (Dec 21, 2025): > /windows displays as usual. Can you provide some debug logs from the phone via `adb logcat` …?
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: starred/headscale#1162