When a GuiObject is in the Hover or Pressed GuiState and its parent ScreenGui.Enabled is set to false, the GuiState does not revert to Idle as expected. It remains stuck until the user interacts with the GUI again after it’s re-enabled, or moves the mouse off the game window.
I have attached a minimal reproduction file containing a ScreenGui with a button to demonstrate this behavior.
Workaround i found was setting Button.Interactable to false when the ScreenGui gets disabled and then setting Button.Interactable back to true when the ScreenGui gets enabled.
I think doing that “locks” the Button.GuiState in “NonInteractable” to reset the “Hover” GuiState from before.