[Bug] tailscale up with routes and login loses track of routes #956

Closed
opened 2025-12-29 02:26:42 +01:00 by adam · 2 comments
Owner

Originally created by @antiguru on GitHub (Feb 24, 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

I'm trying to connect a node to a tailnet that announces routes to its local subnet:

tailscale up --login-server=https://example.net/ --advertise-routes=192.168.1.0/24 --accept-routes

It goes through the normal login flow, and seems to succeed, but the routes never show up in headscale routes list.

Once I split the tailscale command in two (login followed by routes changes), it works as expected.

Expected Behavior

The routes show up in headscale routes list and can be managed.

Steps To Reproduce

  1. Create a new headscale server
  2. On a client, run tailscale up --login-server=https://example.net/ --advertise-routes=192.168.1.0/24 --accept-routes
  3. Authorize.
  4. headscale routes list is empty.

Environment

- OS: Debian Bookworm
- Headscale version: 0.25.0
- Tailscale version: 1.80.2

Runtime environment

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

Anything else?

No response

Originally created by @antiguru on GitHub (Feb 24, 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 I'm trying to connect a node to a tailnet that announces routes to its local subnet: ``` tailscale up --login-server=https://example.net/ --advertise-routes=192.168.1.0/24 --accept-routes ``` It goes through the normal login flow, and seems to succeed, but the routes never show up in `headscale routes list`. Once I split the tailscale command in two (login followed by routes changes), it works as expected. ### Expected Behavior The routes show up in `headscale routes list` and can be managed. ### Steps To Reproduce 1. Create a new headscale server 2. On a client, run `tailscale up --login-server=https://example.net/ --advertise-routes=192.168.1.0/24 --accept-routes` 3. Authorize. 4. `headscale routes list` is empty. ### Environment ```markdown - OS: Debian Bookworm - Headscale version: 0.25.0 - Tailscale version: 1.80.2 ``` ### Runtime environment - [x] Headscale is behind a (reverse) proxy - [ ] Headscale runs in a container ### Anything else? _No response_
adam added the bug label 2025-12-29 02:26:42 +01:00
adam closed this issue 2025-12-29 02:26:42 +01:00
Author
Owner

@alias3241 commented on GitHub (Feb 24, 2025):

Yep same issue I'm facing!

  1. on client - tailscale up --login-server=https://example.net/ --advertise-routes=192.168.1.0/24
  2. on server - headscale route is empty
  3. then on same client - tailscale set --advertise-routes=192.168.1.23/32
  4. on server - headscale route is there for 192.168.1.23/24
  5. then again on same client - tailscale set --advertise-routes=192.168.1.0/24
  6. on server - headscale route is there for 192.168.1.0/24
  7. I then delete have to delete the 192.168.1.23/32 route on the server

I have to advertise 192.168.1.23/32 1st otherwise even running "--advertise-routes=192.168.1.0/24" separately like above I get no routes, but after 192.168.1.23/32 then 192.168.1.0/24 works fine.

This is the same for me on multiple clients, all linux clients and container clients

The only ones that seem to work for me straight off the bat is Windows and OSX

Strange bug, it was doing my head in!

@alias3241 commented on GitHub (Feb 24, 2025): Yep same issue I'm facing! 1. on client - tailscale up --login-server=https://example.net/ --advertise-routes=192.168.1.0/24 2. on server - headscale route is empty 3. then on same client - tailscale set --advertise-routes=192.168.1.23/32 4. on server - headscale route is there for 192.168.1.23/24 5. then again on same client - tailscale set --advertise-routes=192.168.1.0/24 6. on server - headscale route is there for 192.168.1.0/24 7. I then delete have to delete the 192.168.1.23/32 route on the server I have to advertise 192.168.1.23/32 1st otherwise even running "--advertise-routes=192.168.1.0/24" separately like above I get no routes, but after 192.168.1.23/32 then 192.168.1.0/24 works fine. This is the same for me on multiple clients, all linux clients and container clients The only ones that seem to work for me straight off the bat is Windows and OSX Strange bug, it was doing my head in!
Author
Owner

@nblock commented on GitHub (Feb 25, 2025):

Duplicate of #2433

@nblock commented on GitHub (Feb 25, 2025): Duplicate of #2433
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: starred/headscale#956