Changing CanvasGroup.UIStroke.UIGradient nested inside a CanvasGroup does not change the color

Changing the color of a UIGradient inside of a UIStroke inside of a CanvasGroup does not work if the parent CanvasGroup is nested inside another CanvasGroup. After debugging a bit, I discovered that parenting it to a Frame or using only one CanvasGroup works for whatever reason. It also does not have to be directly parented to a CanvasGroup, for example the structure can be CanvasGroup.ScrollingFrame.CanvasGroup.UIStroke.UIGradient which still breaks the color since it’s still indirectly parented.
I have also discovered that in order to fix the color that you selected in the UIGradient, you would need to disable and re-enable the UIStroke instance from it’s properties.

Visual aids:
Here is the structure I used to reproduce the bug
Screenshot 2025-04-16 020444

Reproduction steps:
Create the structure CanvasGroup.CanvasGroup.UIStroke.UIGradient and set stroke to white to allow UIGradient to control the color. Then change the color of the UIGradient. Nothing happens. To see the changes re-enable the UIStroke instance.

System information:
Intel(R) Core™ 7 150U
16GB
Intel(R) Graphics

1 Like

This also happens with TextLabels with UIPaddings inside of CanvasGroups. For some reason CanvasGroups doesn’t update once those specific instances’ property changes.