iOS: intermittent shell-construction readiness report timeout in hosted CI

Open
#2,001 0 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
ios, swift
Domain
mobile, testing

Research direction

Start with HostedChatNavigationTests.testPushInstallsOnlyTheShellBeforeReturning and its failing readiness wait at line 50. Trace deferred construction, the seed task, connectObservations, and ChatOpening report creation and cancellation through navigation lifecycle changes. Capture whether content was installed, the seed task completed, the controller remained attached to its parent and account, and the diagnostic clock started; done means identifying the cause and adding a deterministic regression.

Written by the indexing model from the issue text.

Description

Failure

HostedChatNavigationTests.testPushInstallsOnlyTheShellBeforeReturning intermittently times out at line50 waiting for chat.contentInstalled && chat.openingReport != nil on hosted CI.

Observed at 18070fbe5700bab544537bb8230a9b2c24d04c69 in happy-ios run42508502272, attempt2, hosted shard2. The initial assertions that navigation installs only the shell pass, and the subsequent composer-presence and title assertions also pass. The failing assertion is the readiness wait, not an observed missing composer.

Evidence

  • The same test passed attempt1 on the same commit and the latest completed main run at the time, 42475559210.
  • Kirill Mac, iPhone17/iOS27 simulator, unchanged test and budgets: three repetitions passed in0.812s,0.504s,0.517s.
  • Local result bundle: /Users/kirilldubovitskiy/ctb-out/ci-shell.PEM5XP/result.xcresult.
  • Other diagnostic-report failures occur in testHowLongAChatTakesToOpen and HostedNavigationTimingTests.testOpeningChatsFromTheRealHomeRoot; the latter also failed on main. These may share a cause, but that is not established.
  • Full verification record.

Investigation

Treat this as a readiness-report correctness investigation. Trace deferred construction, the seed task, connectObservations, and ChatOpening report creation/cancellation through navigation lifecycle changes. Capture whether content was installed, whether the seed task completed, whether the controller was still attached to its parent/account, and whether the diagnostic clock started. The cause is not yet proven.

Do not hide this with in-test retries, longer waits, deleted assertions, or a performance-budget increase. Keep a deterministic regression when the mechanism is identified.

Dominant language
Swift
Stars
24.6k
Forks
2.1k
Avg merge
2h 28m
Merged PRs (30d)
66

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 slopus/happy

All issues in slopus/happy

Similar issues

More Swift issues

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.