Thank you for reply.
The issue was caused by the script manually hiding all other class resource bars with bar.frame:Hide().
In patch 11.2.0, Blizzard delays resource bar creation/updates, so this forced hide sometimes ran before the bar was re-shown, leaving it permanently hidden until reload.
The fix was simply to remove the manual Hide() calls and let the default UI handle visibility, while still overriding the bar’s position.