This appears to happen mostly when I instantly change to a different frame (such as a credits page), and to a frame which appears on top of the selected button. This has only been happening for a few weeks or so.
This is what the properties of the buttons are set to:
Try adding a slight delay from when the player clicks the button. If that doesn’t work try disable AutoButtonColor and make your own mouse enter / mouse leave function.
0.1 seconds is quite a noticeable delay when it comes to clicking buttons. It does (sort of) work, while wait() doesn’t, so I’ll probably stick to scripting the buttons if nothing else seems to work.
Unfortunately the only way to fix this at the moment would be using the InputBegan and InputEnded events (MouseEnter and MouseLeave don’t really work that well).
However they are subject to the bugs I linked above, so if you really wanted a perfect system you need to do everything yourself with an event like RenderStepped.
I do think it’s safer to rely on your own ui enter function than Roblox’s ui auto-color. It’s not a lot of work to do either so why not just do it? You could even do one better and add a tweening color and then a very subtle white gradient circle around the mouse’s area to give it more polish than what Roblox currently provides. Remember more control over your own systems is something you should strive for.