Issue
Studio narrows a value to never or marks reachable code as impossible.
Cause
Conflicting annotations, impossible union checks, or a solver regression can make the branch appear unreachable.
Fix
Reduce the expression to a small typed example. Verify that the union actually includes the tested variant and avoid mutating the discriminator unexpectedly. Replace broad casts with a local variable narrowed immediately before use. If the minimal case remains wrong, preserve it for a Roblox bug report.
Verify
Confirm both analyzer output and runtime behavior using every union variant.
Official Luau type solver release
#1
Original Heliotrope guidance with authoritative Roblox sources.