When a UIStroke under a CanvasGroup with ScaledSize has a UIGradient child, very weird rendering behavior begins to occur when that CanvasGroup has its Size properties tweened (in my case: to 0’s).
What it looks like after corruption has occured:
What it should look like (minus the leaderboard, forgot to include):
This rendering behavior occurs in both studio play, and the Roblox player. Friends have confirmed the same behavior happens to them as well. Friends have also confirmed that they were able to reproduce using my place file below.
Step-by-step reproduction:
- Create a ScreenGui with a CanvasGroup
- Put a UIStroke under that CanvasGroup, set it’s StrokeSizingMode to ScaledSize.
- Put a UIGradient under the UIStroke. Edit the UIGradient’s Transparency to have at some point in the NumberSequence a value of 1 (this was my case at least)
- Tween the CanvasGroup’s size to be {0, 0, 0, 0}. When the tween has finished, corruption should begin to occur in other UIObjects.
Cases I’ve found that immediately fix the rendering issues:
- Setting the UIStroke’s SizingMode to FixedSize
- Setting the CanvasGroup’s visibility to False
- Deleting/Disabling the UIGradient
- Deleting/Disabling any of the three instances that create this behavior
- Disabling the parent ScreenGui
This place file has my UI that triggered my investigation. I also added a LocalScript under the ScreenGui that automatically reproduces the behavior for you in play.
ui_corruption_repro.rbxl (76.1 KB)

