macOS: action unconditionally overrides system DNS (networksetup 100.100.100.100), breaking Actions broker resolution and cancelling jobs mid-run
Nobody has claimed this yet.
Assessment
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Newbie friendliness
- 52/100
- Issue type
- Bug
- Clarity
- Mostly clear
- Activity status
- Quiet
- Tech stack
- github-actions, macos, typescript
- Domain
- ci-cd, devops, networking
Research direction
Start in src/main.ts at configureDNSOnMacOS and trace the macOS join and post-step flow introduced by #200. Verify how --accept-dns is handled relative to the action's networksetup call, then define the opt-in or --accept-dns=false behavior and DNS restoration; done means the action no longer unconditionally overrides the runner's DNS during a job.
Written by the indexing model from the issue text.
Description
What happens
On a GitHub-hosted macOS runner, a job that connects with tailscale/github-action@v4 and then runs for several minutes gets cancelled ~5 min in with the generic The operation was canceled. Runner diagnostic logs (ACTIONS_RUNNER_DEBUG=true) show repeated job-lease renewal failures:
WARN GitHubActionsService] Attempt N of POST .../renewjob failed (Socket Error: HostNotFound)
ERR JobDispatcher] Catch exception during renew runner job ...
INFO JobDispatcher] Send job cancellation message to worker ...
The Actions broker hostname (run-actions-*.actions.githubusercontent.com) fails to resolve (HostNotFound), so the runner cannot renew its lease and the service cancels the healthy job.
Root cause
On join (macOS only), configureDNSOnMacOS in src/main.ts runs:
networksetup -setdnsservers Ethernet 100.100.100.100
repointing the runner's system DNS at the tailnet resolver, which intermittently fails to forward public queries — so the broker does not resolve, renewjob fails, and the job is cancelled. Three problems:
- Unconditional on macOS — gated only on the tailnet-wide
MagicDNSEnabledflag, not on--accept-dns. Passingargs: --accept-dns=falsedoes not prevent it (that only affectstailscale up, not the action's ownnetworksetupcall). - No input to disable the DNS configuration.
- The action never restores DNS, so the override persists for the whole job.
Introduced by #200.
Impact
Any macOS job that stays up long enough to hit a lease renewal while the tailnet resolver cannot forward the broker query is silently cancelled. Intermittent, so it reads as flaky infrastructure.
Workaround
Revert DNS immediately after the action (safe when you do not need MagicDNS name resolution — reach peers by Tailscale IP):
- run: sudo networksetup -setdnsservers Ethernet Empty
Request
Make the macOS DNS configuration opt-in (or skip it when --accept-dns=false), and/or restore the original DNS in the post step. An input such as set-dns: false would suffice.
Environment
GitHub-hosted macOS (arm64), tailscale/github-action@v4, Tailscale 1.94.2.
- Dominant language
- TypeScript
- Stars
- 938
- Forks
- 137
- PR merge metrics
- No merged PRs in 30d
Contributor guide
No contributing guide indexed for this repository
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
More from tailscale/github-action
-
Difficulty 2/5 1-3 hours Newbie friendliness 68/100
tailscale/github-action#283 · 1 comment · 1 reaction ·
-
fr
Difficulty 3/5 1-2 days Newbie friendliness 68/100
tailscale/github-action#317 ·
-
Difficulty 3/5 1-2 days Newbie friendliness 48/100
tailscale/github-action#316 · 2 comments ·
-
Difficulty 3/5 1-2 days Newbie friendliness 76/100
tailscale/github-action#313 · 1 reaction ·
-
Difficulty 4/5 3-5 days Newbie friendliness 55/100
tailscale/github-action#287 · 7 comments ·
All issues in tailscale/github-action
Similar issues
-
Difficulty 2/5 1-3 hours Newbie friendliness 84/100
Eynzof/Hermes-CN-Desktop#610 ·
-
bug clawsweeper:linked-pr-open clawsweeper:needs-live-repro clawsweeper:no-new-fix-pr impact:message-loss issue-rating: 🐚 platinum hermit P2 regression
Difficulty 2/5 1-3 hours Newbie friendliness 78/100
-
enhancement
Difficulty 2/5 1-3 hours Newbie friendliness 68/100
-
calcite-components needs triage refactor
Difficulty 2/5 1-3 hours Newbie friendliness 75/100
Esri/calcite-design-system#15203 ·
-
Difficulty 1/5 Under an hour Newbie friendliness 78/100
fullcalendar/fullcalendar#8106 ·