Skip to content

console_warning is the only signal for a GSAP selector that matches nothing, and the message omits the selector #5687

Closed

Description

@Justin911009

console_warning is the only signal for a GSAP selector that matches nothing — and the message omits the selector

Two related requests about hyperframes check, filed separately from the audio-dimension gap (#2775 already covers that one). This comes from a 42s general-video run on Windows. Root theme: check reports success for deliverables that are broken in ways it does model — but at a severity that does not gate.

Verified against 0.8.155 and 0.8.159.

Observed

A gsap.fromTo('[data-part="reco-title"]', …) was authored against an element that had class="reco-title" but no data-part attribute. The selector resolved to zero elements. The only report was:

⚠ console_warning: GSAP target  not found. https://gsap.com

Note the double space — the selector name is empty in the message, so the warning does not say which target was missing. It is a warning, not an error, so check still reported Check passed, and the dead animation survived several build/verify cycles before being noticed.

Why this matters more than it looks

An animation targeting nothing is a silent partial failure: the composition renders, every other element animates, and one beat simply never happens. There is no visual smoking gun in a contact sheet unless you already know that beat was supposed to move.

Requests

  1. Include the selector text in the message when it is available. Warning text GSAP target not found with an empty name is not actionable.
  2. Offer a way to escalate. check already has --strict; consider whether console_warning for a non-resolving selector should be an error under --strict, since it is deterministic (the DOM is known at check time) and never intentional.
  3. Optionally, a dedicated rule code (e.g. gsap_target_not_found) rather than folding it into generic console_warning — that would let projects escalate it selectively. In this workspace, across 59 accumulated check reports, console_warning fired 45 times while the busiest rule (canvas_overflow) fired 388 — so console_warning is a low-frequency catch-all that nonetheless carried the only signal for a completely dead animation.

Related but separate

Environment

  • Windows 11 · hyperframes 0.8.155 (also present on 0.8.159) · Node v22.14.0
  • Driver: gsap (bundled assets/vendor/gsap.min.js), selector-based targets

Activity

  1. jekyll541 commented on Oct 16, 2026

    @jekyll541

    DocuAngel still not following

  2. jekyll541 commented on Oct 16, 2026

    @jekyll541

    DocuAngel And still not following

  3. added
    triage/readyAccepted scope, current evidence, acceptance criteria, and validation path are recorded.
    on Oct 23, 2026
  4. miguel-heygen commented on Oct 24, 2026

    @miguel-heygen
    Collaborator

    Thanks for the clear write-up.

    Reproduced on 0.8.193 with a GSAP fromTo('[data-part="reco-title"]', ...) inside a sub-composition against an element that only has class="reco-title": check prints console_warning: GSAP target not found with no selector and still passes. The selector goes missing because, inside a sub-composition, HyperFrames resolves string targets to the composition's own elements before GSAP sees them, so GSAP only ever receives an empty list.

    Request 1 is covered by #5839, which keeps the original selector text in the warning (GSAP target [data-part="reco-title"] not found). It's approved and passing CI. Requests 2 and 3 (failing under --strict, or a dedicated rule code) aren't in that PR, and we'd treat them as a separate feature decision.

  5. jrusso1020 commented on Oct 25, 2026

    @jrusso1020
    Collaborator

    #5839 is now merged, so the warning names the selector that matched nothing, for example GSAP target [data-part="reco-title"] not found. It ships in the next release. Making this fail under --strict, or giving it its own rule code, is a separate decision. If you'd like that, please open a feature request for it. Closing this one as fixed. Thanks for the clear write-up!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    triage/readyAccepted scope, current evidence, acceptance criteria, and validation path are recorded.

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions