Skip to content

[ci-flake] ios-autobind-vmi-undefined — getViewModelInstance() read before auto-bind settles #327

Description

@mfazekas

Signature: ios-autobind-vmi-undefined
Regex: Cannot read property 'numberProperty' of undefined in autoplay.harness.tsx ("auto-binds default ViewModel when one exists") on test-harness-ios
Category: test-bug (timing) over a real API gap
First seen: 2026-07-08 · Last seen: 2026-07-08

Occurrence log

  • 2026-07-08 — run 28916680755 (812966d, experimental backend) — ref.getViewModelInstance() returned undefined right after view-ready; expect(vmi).not.toBeNull() passes for undefined, then vmi!.numberProperty('ypos') throws. Same run also had one exit-137 (Metro OOM) retry on attempt 1.

Hypothesis

The view's auto-bound ViewModelInstance resolves asynchronously after view-ready (no native bind-complete signal, review finding M3) — a one-shot getViewModelInstance() read races the bind. The test also uses not.toBeNull() which lets undefined through to a crash instead of a clean assertion failure.

Reproduction

Timing race — tighten the window by reading getViewModelInstance() immediately after awaitViewReady() on a data-bound file (experimental backend); the auto-bind round-trips the command queue and can land later.

Mitigation

Closing criterion (guard)

#304 merges (test waits for the property; hook polls for the bound instance) and the signature stops appearing → move to ci-flake:resolved.


Tracked via CI Flake Triage. This issue is intentionally closed — it is a ledger entry, not open work.

Metadata

Metadata

Assignees

No one assigned

    Labels

    ci-flakeIntermittent CI failure tracked via the flake-triage processci-flake:activeFlake still recurring; no permanent guard yet

    Type

    No type

    Fields

    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions