mirror of
https://github.com/juanfont/headscale.git
synced 2026-01-11 20:00:28 +01:00
The headscale node status displays an error, showing offline but actually online. #568
Closed
opened 2025-12-29 02:20:37 +01:00 by adam
·
7 comments
No Branch/Tag Specified
main
update_flake_lock_action
gh-pages
kradalby/release-v0.27.2
dependabot/go_modules/golang.org/x/crypto-0.45.0
dependabot/go_modules/github.com/opencontainers/runc-1.3.3
copilot/investigate-headscale-issue-2788
copilot/investigate-visibility-issue-2788
copilot/investigate-issue-2833
copilot/debug-issue-2846
copilot/fix-issue-2847
dependabot/go_modules/github.com/go-viper/mapstructure/v2-2.4.0
dependabot/go_modules/github.com/docker/docker-28.3.3incompatible
kradalby/cli-experiement3
doc/0.26.1
doc/0.25.1
doc/0.25.0
doc/0.24.3
doc/0.24.2
doc/0.24.1
doc/0.24.0
kradalby/build-docker-on-pr
topic/docu-versioning
topic/docker-kos
juanfont/fix-crash-node-id
juanfont/better-disclaimer
update-contributors
topic/prettier
revert-1893-add-test-stage-to-docs
add-test-stage-to-docs
remove-node-check-interval
fix-empty-prefix
fix-ephemeral-reusable
bug_report-debuginfo
autogroups
logs-to-stderr
revert-1414-topic/fix_unix_socket
rename-machine-node
port-embedded-derp-tests-v2
port-derp-tests
duplicate-word-linter
update-tailscale-1.36
warn-against-apache
ko-fi-link
more-acl-tests
fix-typo-standalone
parallel-nolint
tparallel-fix
rerouting
ssh-changelog-docs
oidc-cleanup
web-auth-flow-tests
kradalby-gh-runner
fix-proto-lint
remove-funding-links
go-1.19
enable-1.30-in-tests
0.16.x
cosmetic-changes-integration
tmp-fix-integration-docker
fix-integration-docker
configurable-update-interval
show-nodes-online
hs2021
acl-syntax-fixes
ts2021-implementation
fix-spurious-updates
unstable-integration-tests
mandatory-stun
embedded-derp
prtemplate-fix
v0.28.0-beta.1
v0.27.2-rc.1
v0.27.1
v0.27.0
v0.27.0-beta.2
v0.27.0-beta.1
v0.26.1
v0.26.0
v0.26.0-beta.2
v0.26.0-beta.1
v0.25.1
v0.25.0
v0.25.0-beta.2
v0.24.3
v0.25.0-beta.1
v0.24.2
v0.24.1
v0.24.0
v0.24.0-beta.2
v0.24.0-beta.1
v0.23.0
v0.23.0-rc.1
v0.23.0-beta.5
v0.23.0-beta.4
v0.23.0-beta3
v0.23.0-beta2
v0.23.0-beta1
v0.23.0-alpha12
v0.23.0-alpha11
v0.23.0-alpha10
v0.23.0-alpha9
v0.23.0-alpha8
v0.23.0-alpha7
v0.23.0-alpha6
v0.23.0-alpha5
v0.23.0-alpha4
v0.23.0-alpha4-docker-ko-test9
v0.23.0-alpha4-docker-ko-test8
v0.23.0-alpha4-docker-ko-test7
v0.23.0-alpha4-docker-ko-test6
v0.23.0-alpha4-docker-ko-test5
v0.23.0-alpha-docker-release-test-debug2
v0.23.0-alpha-docker-release-test-debug
v0.23.0-alpha4-docker-ko-test4
v0.23.0-alpha4-docker-ko-test3
v0.23.0-alpha4-docker-ko-test2
v0.23.0-alpha4-docker-ko-test
v0.23.0-alpha3
v0.23.0-alpha2
v0.23.0-alpha1
v0.22.3
v0.22.2
v0.23.0-alpha-docker-release-test
v0.22.1
v0.22.0
v0.22.0-alpha3
v0.22.0-alpha2
v0.22.0-alpha1
v0.22.0-nfpmtest
v0.21.0
v0.20.0
v0.19.0
v0.19.0-beta2
v0.19.0-beta1
v0.18.0
v0.18.0-beta4
v0.18.0-beta3
v0.18.0-beta2
v0.18.0-beta1
v0.17.1
v0.17.0
v0.17.0-beta5
v0.17.0-beta4
v0.17.0-beta3
v0.17.0-beta2
v0.17.0-beta1
v0.17.0-alpha4
v0.17.0-alpha3
v0.17.0-alpha2
v0.17.0-alpha1
v0.16.4
v0.16.3
v0.16.2
v0.16.1
v0.16.0
v0.16.0-beta7
v0.16.0-beta6
v0.16.0-beta5
v0.16.0-beta4
v0.16.0-beta3
v0.16.0-beta2
v0.16.0-beta1
v0.15.0
v0.15.0-beta6
v0.15.0-beta5
v0.15.0-beta4
v0.15.0-beta3
v0.15.0-beta2
v0.15.0-beta1
v0.14.0
v0.14.0-beta2
v0.14.0-beta1
v0.13.0
v0.13.0-beta3
v0.13.0-beta2
v0.13.0-beta1
upstream/v0.12.4
v0.12.4
v0.12.3
v0.12.2
v0.12.2-beta1
v0.12.1
v0.12.0-beta2
v0.12.0-beta1
v0.11.0
v0.10.8
v0.10.7
v0.10.6
v0.10.5
v0.10.4
v0.10.3
v0.10.2
v0.10.1
v0.10.0
v0.9.3
v0.9.2
v0.9.1
v0.9.0
v0.8.1
v0.8.0
v0.7.1
v0.7.0
v0.6.1
v0.6.0
v0.5.2
v0.5.1
v0.5.0
v0.4.0
v0.3.6
v0.3.5
v0.3.4
v0.3.3
v0.3.2
v0.3.1
v0.3.0
v0.2.2
v0.2.1
v0.2.0
v0.1.1
v0.1.0
Labels
Clear labels
CLI
DERP
DNS
Nix
OIDC
SSH
bug
database
documentation
duplicate
enhancement
faq
good first issue
grants
help wanted
might-come
needs design doc
needs investigation
no-stale-bot
out of scope
performance
policy 📝
pull-request
question
regression
routes
stale
tags
tailscale-feature-gap
well described ❤️
wontfix
Mirrored from GitHub Pull Request
Milestone
No items
No Milestone
Projects
Clear projects
No project
Notifications
Due Date
No due date set.
Dependencies
No dependencies set.
Reference: starred/headscale#568
Reference in New Issue
Block a user
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.
Delete Branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Originally created by @doubletry on GitHub (Oct 17, 2023).
Bug description
The
headscale node listcommand shows that the status of all nodes isoffline, but the tailscale nodes can be connected. When I restart the headscale service throughsystemctl restart headscale.service, the results will be updated to theonline. However, after a period of time, all nodes gradually becomeoffline.Environment
OS: Windows 11, Ubuntu 22.04 and Ubuntu 20.04
Headscale version: v0.23.0-alpha1
Tailscale version: v1.50.1
Headscale is behind a (reverse) proxy
Headscale runs in a container
@proitlab commented on GitHub (Oct 19, 2023):
I experienced same condition. I have 2 nodes, pinged each other. But it shown offline with command headscale nodes list:
headscale nodes list
2023-10-19T03:46:16Z TRC DNS configuration loaded dns_config={"ExitNodeFilteredSet":null,"Nameservers":["1.1.1.1"],"Proxied":true,"Resolvers":[{"Addr":"1.1.1.1"}]}
ID | Hostname | Name | MachineKey | NodeKey | User | IP addresses | Ephemeral | Last seen | Expiration | Online | Expired
2 | backone-enterprise-01 | backone-enterprise-01 | [SkiQL] | [SIpfN] | admins | 100.64.0.2, fd7a:115c:a1e0::2 | false | 2023-10-17 09:55:19 | 0001-01-01 00:00:00 | offline | no
1 | Dedys-MacBook-Air | dedys-macbook-air | [liL3/] | [ket1S] | admins | 100.64.0.1, fd7a:115c:a1e0::1 | false | 2023-10-19 03:03:41 | 0001-01-01 00:00:00 | offline | no
date
Thu Oct 19 03:46:17 UTC 2023
Looking into file hscontrol/types/nodes.go
// IsOnline returns if the node is connected to Headscale.
// This is really a naive implementation, as we don't really see
// if there is a working connection between the client and the server.
func (node *Node) IsOnline() bool {
if node.LastSeen == nil {
return false
}
}
It seem table "nodes" field "last_seen" is not updated properly.
@proitlab commented on GitHub (Oct 19, 2023):
Some more information from headscale logs:
headscale-latest.1.muxggm8plvj1@server3.saltis.id | 2023-10-19T04:06:41Z INF src/headscale/hscontrol/poll.go:33 > Waiting for update on stream channel node=Dedys-MacBook-Air node_key=91eb754ac8427b8137720c11f3a8accf612582ba62dfd2ada00549034901ea25 noise=true omitPeers=false readOnly=false stream=true
headscale-latest.1.muxggm8plvj1@server3.saltis.id | 2023-10-19T04:07:05Z INF src/headscale/hscontrol/poll.go:33 > Waiting for update on stream channel node=DESKTOP-PDOIGN9 node_key=c36332ffa81093d51f818daf3d7077ea60e3835d92ed32833a9ca6b7bd34ed3e noise=true omitPeers=false readOnly=false stream=true
headscale-latest.1.muxggm8plvj1@server3.saltis.id | 2023-10-19T04:07:19Z INF src/headscale/hscontrol/poll.go:33 > Waiting for update on stream channel node=backone-enterprise-01 node_key=488a5f341743b6d18269048c82dd79b9c025694cfd8124f1c252ced881d4ba1c noise=true omitPeers=false readOnly=false stream=true
It seems poll.go is not receiving KeepAlived message from nodes.
@proitlab commented on GitHub (Oct 19, 2023):
Fix the issue. I am running headscale behind traefik. My configuration traefik set with minimal TLS version 1.3. While tailscale send TLS version 1.2. After update traefik configuration, to minimal TLS 1.2, I show this in headscale logs:
headscale-latest.1.m5snv7itppzp@server1a.saltis.id | 2023-10-19T05:35:30Z TRC PollNetMapHandler called handler=NoisePollNetMap
headscale-latest.1.m5snv7itppzp@server1a.saltis.id | 2023-10-19T05:35:30Z TRC src/headscale/hscontrol/poll_noise.go:34 > Headers headers={"Accept-Encoding":["gzip"],"Content-Length":["1272"],"User-Agent":["Go-http-client/2.0"]}
headscale-latest.1.m5snv7itppzp@server1a.saltis.id | 2023-10-19T05:35:30Z DBG A node sending a MapRequest with Noise protocol handler=NoisePollNetMap node=Dedys-MacBook-Air
headscale-latest.1.m5snv7itppzp@server1a.saltis.id | 2023-10-19T05:35:30Z INF src/headscale/hscontrol/poll.go:79 > Received endpoint update endpoints=["192.168.88.237:22545","175.158.54.120:12263","175.158.54.120:33547","175.158.54.120:12125","175.158.54.120:12128","175.158.54.120:52797","175.158.54.120:52798","192.168.20.193:53511","192.168.168.20:53511","192.168.192.99:53511"] node=Dedys-MacBook-Air node_key=91eb754ac8427b8137720c11f3a8accf612582ba62dfd2ada00549034901ea25 noise=true omitPeers=true readOnly=false stream=false
headscale-latest.1.m5snv7itppzp@server1a.saltis.id | 2023-10-19T05:35:30Z TRC updating routes advertisedRoutes={} currentRoutes=[] node=Dedys-MacBook-Air
headscale-latest.1.m5snv7itppzp@server1a.saltis.id | 2023-10-19T05:35:30Z TRC src/headscale/hscontrol/notifier/notifier.go:63 > acquiring lock to notify type=1
headscale-latest.1.m5snv7itppzp@server1a.saltis.id | 2023-10-19T05:35:30Z TRC src/headscale/hscontrol/notifier/notifier.go:77 > sending update ignoring=["9622f7fce7d1a046d3f0dec4a45b09aa2a369a6543b9541dba60dcee7a531541"] machine=cc373add152685d3dee371b5895417eeed170d0af928f92275673cae914b5a06
headscale-latest.1.m5snv7itppzp@server1a.saltis.id | 2023-10-19T05:35:30Z TRC src/headscale/hscontrol/notifier/notifier.go:77 > sending update ignoring=["9622f7fce7d1a046d3f0dec4a45b09aa2a369a6543b9541dba60dcee7a531541"] machine=4a48902e58643a7bbb07dc8e7a1d4dae69e280f0e1612ec606f0a0710fa2d81b
headscale-latest.1.m5snv7itppzp@server1a.saltis.id | 2023-10-19T05:35:30Z TRC src/headscale/hscontrol/notifier/notifier.go:65 > releasing lock, finished notifing type=1
headscale-latest.1.m5snv7itppzp@server1a.saltis.id | 2023-10-19T05:35:30Z INF src/headscale/hscontrol/poll.go:33 > Received update node=DESKTOP-PDOIGN9 node_key=c36332ffa81093d51f818daf3d7077ea60e3835d92ed32833a9ca6b7bd34ed3e noise=true omitPeers=false readOnly=false stream=true
headscale-latest.1.m5snv7itppzp@server1a.saltis.id | 2023-10-19T05:35:30Z INF src/headscale/hscontrol/poll.go:33 > Received update node=backone-enterprise-01 node_key=488a5f341743b6d18269048c82dd79b9c025694cfd8124f1c252ced881d4ba1c noise=true omitPeers=false readOnly=false stream=true
headscale-latest.1.m5snv7itppzp@server1a.saltis.id | 2023-10-19T05:35:30Z INF src/headscale/hscontrol/poll.go:33 > Sending PeerChanged MapResponse node=DESKTOP-PDOIGN9 node_key=c36332ffa81093d51f818daf3d7077ea60e3835d92ed32833a9ca6b7bd34ed3e noise=true omitPeers=false readOnly=false stream=true
headscale-latest.1.m5snv7itppzp@server1a.saltis.id | 2023-10-19T05:35:30Z INF src/headscale/hscontrol/poll.go:33 > Sending PeerChanged MapResponse node=backone-enterprise-01 node_key=488a5f341743b6d18269048c82dd79b9c025694cfd8124f1c252ced881d4ba1c noise=true omitPeers=false readOnly=false stream=true
headscale-latest.1.m5snv7itppzp@server1a.saltis.id | 2023-10-19T05:35:30Z INF src/headscale/hscontrol/poll.go:339 > update sent node=DESKTOP-PDOIGN9 node_key=c36332ffa81093d51f818daf3d7077ea60e3835d92ed32833a9ca6b7bd34ed3e noise=true omitPeers=false readOnly=false stream=true timeSpent=0.921334
headscale-latest.1.m5snv7itppzp@server1a.saltis.id | 2023-10-19T05:35:30Z INF src/headscale/hscontrol/poll.go:339 > update sent node=backone-enterprise-01 node_key=488a5f341743b6d18269048c82dd79b9c025694cfd8124f1c252ced881d4ba1c noise=true omitPeers=false readOnly=false stream=true timeSpent=0.914151
headscale-latest.1.m5snv7itppzp@server1a.saltis.id | 2023-10-19T05:35:30Z INF src/headscale/hscontrol/poll.go:33 > Waiting for update on stream channel node=DESKTOP-PDOIGN9 node_key=c36332ffa81093d51f818daf3d7077ea60e3835d92ed32833a9ca6b7bd34ed3e noise=true omitPeers=false readOnly=false stream=true
headscale-latest.1.m5snv7itppzp@server1a.saltis.id | 2023-10-19T05:35:30Z INF src/headscale/hscontrol/poll.go:33 > Waiting for update on stream channel node=backone-enterprise-01 node_key=488a5f341743b6d18269048c82dd79b9c025694cfd8124f1c252ced881d4ba1c noise=true omitPeers=false readOnly=false stream=true
headscale-latest.1.m5snv7itppzp@server1a.saltis.id | 2023-10-19T05:35:37Z INF src/headscale/hscontrol/poll.go:33 > Waiting for update on stream channel node=DESKTOP-PDOIGN9 node_key=c36332ffa81093d51f818daf3d7077ea60e3835d92ed32833a9ca6b7bd34ed3e noise=true omitPeers=false readOnly=false stream=true
headscale-latest.1.m5snv7itppzp@server1a.saltis.id | 2023-10-19T05:35:38Z INF src/headscale/hscontrol/poll.go:33 > Waiting for update on stream channel node=backone-enterprise-01 node_key=488a5f341743b6d18269048c82dd79b9c025694cfd8124f1c252ced881d4ba1c noise=true omitPeers=false readOnly=false stream=true
headscale-latest.1.m5snv7itppzp@server1a.saltis.id | 2023-10-19T05:35:38Z INF src/headscale/hscontrol/poll.go:33 > Waiting for update on stream channel node=Dedys-MacBook-Air node_key=91eb754ac8427b8137720c11f3a8accf612582ba62dfd2ada00549034901ea25 noise=true omitPeers=false readOnly=false stream=true
headscale-latest.1.m5snv7itppzp@server1a.saltis.id | 2023-10-19T05:36:31Z TRC PollNetMapHandler called handler=NoisePollNetMap
headscale-latest.1.m5snv7itppzp@server1a.saltis.id | 2023-10-19T05:36:31Z TRC src/headscale/hscontrol/poll_noise.go:34 > Headers headers={"Accept-Encoding":["gzip"],"Content-Length":["1272"],"User-Agent":["Go-http-client/2.0"]}
headscale-latest.1.m5snv7itppzp@server1a.saltis.id | 2023-10-19T05:36:31Z DBG A node sending a MapRequest with Noise protocol handler=NoisePollNetMap node=Dedys-MacBook-Air
headscale-latest.1.m5snv7itppzp@server1a.saltis.id | 2023-10-19T05:36:31Z INF src/headscale/hscontrol/poll.go:79 > Received endpoint update endpoints=["192.168.88.237:22545","175.158.54.120:52985","175.158.54.120:12125","175.158.54.120:52798","175.158.54.120:12128","175.158.54.120:52797","175.158.54.120:12263","192.168.20.193:53511","192.168.168.20:53511","192.168.192.99:53511"] node=Dedys-MacBook-Air node_key=91eb754ac8427b8137720c11f3a8accf612582ba62dfd2ada00549034901ea25 noise=true omitPeers=true readOnly=false stream=false
headscale-latest.1.m5snv7itppzp@server1a.saltis.id | 2023-10-19T05:36:31Z TRC updating routes advertisedRoutes={} currentRoutes=[] node=Dedys-MacBook-Air
headscale-latest.1.m5snv7itppzp@server1a.saltis.id | 2023-10-19T05:36:31Z TRC src/headscale/hscontrol/notifier/notifier.go:63 > acquiring lock to notify type=1
headscale-latest.1.m5snv7itppzp@server1a.saltis.id | 2023-10-19T05:36:31Z TRC src/headscale/hscontrol/notifier/notifier.go:77 > sending update ignoring=["9622f7fce7d1a046d3f0dec4a45b09aa2a369a6543b9541dba60dcee7a531541"] machine=cc373add152685d3dee371b5895417eeed170d0af928f92275673cae914b5a06
headscale-latest.1.m5snv7itppzp@server1a.saltis.id | 2023-10-19T05:36:31Z TRC src/headscale/hscontrol/notifier/notifier.go:77 > sending update ignoring=["9622f7fce7d1a046d3f0dec4a45b09aa2a369a6543b9541dba60dcee7a531541"] machine=4a48902e58643a7bbb07dc8e7a1d4dae69e280f0e1612ec606f0a0710fa2d81b
headscale-latest.1.m5snv7itppzp@server1a.saltis.id | 2023-10-19T05:36:31Z TRC src/headscale/hscontrol/notifier/notifier.go:65 > releasing lock, finished notifing type=1
headscale-latest.1.m5snv7itppzp@server1a.saltis.id | 2023-10-19T05:36:31Z INF src/headscale/hscontrol/poll.go:33 > Received update node=DESKTOP-PDOIGN9 node_key=c36332ffa81093d51f818daf3d7077ea60e3835d92ed32833a9ca6b7bd34ed3e noise=true omitPeers=false readOnly=false stream=true
headscale-latest.1.m5snv7itppzp@server1a.saltis.id | 2023-10-19T05:36:31Z INF src/headscale/hscontrol/poll.go:33 > Received update node=backone-enterprise-01 node_key=488a5f341743b6d18269048c82dd79b9c025694cfd8124f1c252ced881d4ba1c noise=true omitPeers=false readOnly=false stream=true
headscale-latest.1.m5snv7itppzp@server1a.saltis.id | 2023-10-19T05:36:31Z INF src/headscale/hscontrol/poll.go:33 > Sending PeerChanged MapResponse node=DESKTOP-PDOIGN9 node_key=c36332ffa81093d51f818daf3d7077ea60e3835d92ed32833a9ca6b7bd34ed3e noise=true omitPeers=false readOnly=false stream=true
headscale-latest.1.m5snv7itppzp@server1a.saltis.id | 2023-10-19T05:36:31Z INF src/headscale/hscontrol/poll.go:33 > Sending PeerChanged MapResponse node=backone-enterprise-01 node_key=488a5f341743b6d18269048c82dd79b9c025694cfd8124f1c252ced881d4ba1c noise=true omitPeers=false readOnly=false stream=true
headscale-latest.1.m5snv7itppzp@server1a.saltis.id | 2023-10-19T05:36:31Z INF src/headscale/hscontrol/poll.go:339 > update sent node=backone-enterprise-01 node_key=488a5f341743b6d18269048c82dd79b9c025694cfd8124f1c252ced881d4ba1c noise=true omitPeers=false readOnly=false stream=true timeSpent=1.130774
headscale-latest.1.m5snv7itppzp@server1a.saltis.id | 2023-10-19T05:36:31Z INF src/headscale/hscontrol/poll.go:339 > update sent node=DESKTOP-PDOIGN9 node_key=c36332ffa81093d51f818daf3d7077ea60e3835d92ed32833a9ca6b7bd34ed3e noise=true omitPeers=false readOnly=false stream=true timeSpent=1.177364
Nodes:
Dedys-MacBook-Air -> Tailscale 1.51.0
Others -> Tailscale 1.50.1
headscale nodes list:
headscale nodes list
2023-10-19T05:43:09Z TRC DNS configuration loaded dns_config={"ExitNodeFilteredSet":null,"Nameservers":["1.1.1.1"],"Proxied":true,"Resolvers":[{"Addr":"1.1.1.1"}]}
2023-10-19T05:43:10Z TRC DNS configuration loaded dns_config={"ExitNodeFilteredSet":null,"Nameservers":["1.1.1.1"],"Proxied":true,"Resolvers":[{"Addr":"1.1.1.1"}]}
2023-10-19T05:43:10Z DBG Setting timeout timeout=5000
2023-10-19T05:43:10Z DBG HEADSCALE_CLI_ADDRESS environment is not set, connecting to unix socket. socket=/var/run/headscale/headscale.sock
2023-10-19T05:43:10Z TRC src/headscale/cmd/headscale/cli/utils.go:138 > Connecting via gRPC address=/var/run/headscale/headscale.sock
ID | Hostname | Name | MachineKey | NodeKey | User | IP addresses | Ephemeral | Last seen | Expiration | Online | Expired
2 | backone-enterprise-01 | backone-enterprise-01 | [SkiQL] | [SIpfN] | admins | 100.64.0.2, fd7a:115c:a1e0::2 | false | 2023-10-19 05:28:37 | 0001-01-01 00:00:00 | offline | no
3 | DESKTOP-PDOIGN9 | desktop-pdoign9 | [zDc63] | [w2My/] | admins | 100.64.0.3, fd7a:115c:a1e0::3 | false | 2023-10-19 05:28:36 | 0001-01-01 00:00:00 | offline | no
1 | Dedys-MacBook-Air | dedys-macbook-air | [liL3/] | [ket1S] | admins | 100.64.0.1, fd7a:115c:a1e0::1 | false | 2023-10-19 05:28:37 | 0001-01-01 00:00:00 | offline | no
Still showing offline.
@shidoh commented on GitHub (Oct 21, 2023):
same problem. -
Waiting for update on stream channel nodenodes are shown offline
the network is working, but it is not possible to use exit nodes, clients consider them to be offline
0.23.0-alpha1
nginx reverse proxy configured according to documentation
@kradalby commented on GitHub (Oct 31, 2023):
Should be addressed as part of #1564
@github-actions[bot] commented on GitHub (Jan 30, 2024):
This issue is stale because it has been open for 90 days with no activity.
@github-actions[bot] commented on GitHub (Feb 7, 2024):
This issue was closed because it has been inactive for 14 days since being marked as stale.