Hacktoberfest 2026: the issues maintainers tagged for October, open and beginner-friendly. Browse Hacktoberfest issues

iOS smoke lane: preflight 'prepare ios-runner' fails job with daemon_startup_failed on PR lanes (untracked third class)

Open
#3,342 12 comments 0 reactions 0 assignees View on GitHub

Maintainers usually reply within 1 day

Nobody has claimed this yet.

Assessment

Difficulty
5/5
Estimated time
Over a week
Newbie friendliness
35/100
Issue type
Bug
Clarity
Mostly clear
Activity status
Active
Tech stack
github-actions, typescript
Domain
ci-cd, mobile

Research direction

Start by reading the ios.yml Smoke Tests preflight step and the daemon startup and cleanup paths reached by pnpm clean:daemon and prepare ios-runner; inspect the lock and daemon.json handling and startup probe. Compare the reported failures with the Windows daemon changes in #3330, then use the existing smoke lane to validate the identified cause. Done means the root cause is established and the preflight no longer fails spuriously.

Written by the indexing model from the issue text.

Description

Why

ios.yml Smoke Tests fails at the step "Preflight iOS runner through public CLI" (pnpm clean:daemon + node src/bin.ts prepare ios-runner …) before any scenario runs, with the daemon client's typed details.kind: "daemon_startup_failed":

"message": "Failed to start daemon",
"details": { "kind": "daemon_startup_failed", "startupTimeoutMs": 15000, "startupAttempts": 1, … }

This is a third red class in the iOS smoke lane beyond the two in #3337, and it is exactly the "red that means nothing" problem #2491 / #3336 are about: the step fails the whole job while the diff cannot have caused it.

Evidence (PR-lane only; no failing main run observed)

  • Run 37839500279 (PR #3336, head ffd575ae7, test-only diff — zero files under src/daemon or packages/host-kit), failed 2026-10-08T20:32:31Z.
  • Run 37832908816 (PR #3330 fix/windows-daemon-start-3291, head 0743ddba0), failed the IDENTICAL step with the IDENTICAL details.kind at 2026-10-08T19:38:37Z — different branch, different author, same environment signature within an hour.
  • main shows no failing ios.yml runs on 2026-10-08, so this is currently PR-lane-only evidence.

Both payloads show stateDir/lockPath/infoPath inside the workspace .tmp/agent-device-state, startupTimeoutMs: 15000, startupAttempts: 1, and the client hint pointing at stale lock/daemon metadata from a previous owner in that state directory.

Scope

Find the root owner: whether the preflight's clean:daemon can leave (or collide with) lock/daemon.json state that makes the next start unrecoverable within the 15 s one-attempt budget on shared CI hosts, or whether the startup probe itself is under-budgeted under host load. Note the failing runs overlapped PR #3330, which is actively changing daemon startup on Windows (#3291) — rule that interaction in or out before assuming pure environment flake. Not requested here: re-running lanes to mask it — the re-run of 37839500279 is recorded on #3336.

Related: #2491 (lane signal), #3337 (other untracked smoke-lane signatures).

Dominant language
TypeScript
Stars
4.9k
Forks
328
Avg merge
12h 16m
Merged PRs (30d)
538

Getting set up

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

More from callstack/agent-device

All issues in callstack/agent-device

Similar issues

More TypeScript issues

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.