There is some information missing in the problem description. For example, if you close the lid, does the computer suspend/sleep/hibernate? It may be that when the computer sleeps something "breaks" or it may be that the act of physically closing/opening the lid has an effect (e.g. because the WiFi antenna is embedded in the display frame).
Some time ago I had a similar problem with Tailscale and sleeping. When Tailscale initializes itself (at boot), it has to interact with another service to communicate which DNS servers have become available (e.g. 100.100.100.100). Several implementations of such services exist (resolvconf, openresolv), in my case systemd-resolved. During normal operation, resolvectl status
(if using systemd-resolved) shows which DNS servers and which search domains are configured for each network interface such as tailscale0
. Now, there is a bug (or feature) that systemd-resolved "forgets" the DNS configuration it got from Tailscale when the computer is put to sleep. So, when the computer wakes up, name resolution via Tailscale no longer works, giving you the impression that Tailscale itself is not working, although Tailscale's low-level functions are still operational.
My "solution" was to write a small script that gets executed when the computer wakes up which sets again DNS server and search domain for network device tailscale0
.