ViewportFrame does not update in CanvasGroup

Description: When updating anything within a ViewportFrame that is within a CanvasGroup is changed, the content is not updated. Meaning, if you were to rotate a part within a ViewportFrame that is parented to a CanvasGroup then the part looks to be standing still, when in reality the CFrame property is being changed. Strangely, the ViewportFrame only seems to update when the mouse enters or leaves any UI element.

Where: This bug occurs in Studio, in play-testing, and in the Roblox application.
When: I did not encounter this bug until just recently on 3 / 19 / 2023 at 10 a.m.
Videos and images:


I added this code in order to rotate the parts.

local i = 0

while true do
	i += 1
	script.Parent.ViewportFrame.Part.CFrame = CFrame.fromOrientation(0, math.rad(i), 0)

However, this can also be reproduced by just changing any properties in Studio. For example:

bug.rbxl (45.0 KB)

Reproduction instructions and files: Create a ScreenGui, place a CanvasGroup within that ScreenGui, and then place a ViewportFrame within the CanvasGroup. Then, set up the ViewportFrame by placing a default Camera within the ViewportFrame and setting the CurrentCamera property to that Camera. Finally, place a Part within the ViewportFrame and try changing any properties about the part.


We’ve filed a ticket into our internal database for this issue, and we will update you when we have further information.

Thanks for flagging!


If this is supposed to be fixed, it’s broken again (or still is since this 80 days ago). My avatar viewer is breaking constantly because of this bug.

Making viewports practically unusable within canvasgroups

The only workaround I’ve found is to either change properties on the CanvasGroup constantly or re-parent your target object in the ViewportFrame constantly. Still waiting on a fix. :frowning:

Yea, but I’m talking about it in-game which has no properties window. However, I have found a workaround within the game but it doesn’t mean the bug isn’t annoying.

If the viewport is within a scroll frame and you scroll in any direction it’ll update. But that’s the only method I’ve come up with to update it

One Workaround for those that are currently finding this post.

Add a boolean attribute to the object and use a loop to constantly enable/disable it.
This will update videoFrames, Viewports, etc

1 Like

Theres actually a easy way around this.

       for i,v in pairs(CanvasGroup:GetChildren())
              if v:FindFirstChild("ViewportFrame") then
                     v.Visible = false
                     v.Visible = true

You can have this in a spawn function aswell that just runs. (locally)
this will bypass and be a temp work around untill the bug has been fixed.

Bumping this again in hopes of it getting fixed :crossed_fingers:

Hey, this is still broken. lol

This bug is now again occurring.


this is probably the intended effect, since canvasgroup are a bit more different than the other normal guithings

Bump - still happens to date. Extremely annoying and the only good solution I’ve found is to “jitter” one of the viewport properties, or the viewport camera for some reason, on each render step to get a consistent refresh (I flicker the camera FOV slightly).

This is not fixed and shouldn’t be marked as such. It still occurs today.


Hey. I can confirm that as of the 4th of April 2024, this bug is still in fact, unfixed. I literally spent 3 hours wondering why it wasn’t playing animations. massive waste of time. roblox employees cant get one thing right.

not fixed :sob:looks like the almighty brute force will play a role once again

still not working as of April 28, 2024

1 Like

Yes I’m still having this issue unfortunately.