Same problem here. (From a very quick test, 3.1.0 doesn't have this problem).
Debug log file follows (it's small and I couldn't upload it for some reason.
2025-03-16 13:23:14,400 MainThread openlp.core.common.actions WARNING Shortcut "" is removed from "fileExitItem" because another action already uses this shortcut.
2025-03-16 13:23:14,671 MainThread openlp.core.common.actions WARNING Shortcut "" is removed from "settingsConfigureItem" because another action already uses this shortcut.
2025-03-16 13:23:17,321 MainThread openlp.plugins.presentations.lib.impresscontroller WARNING Failed to get COM service manager. Impress Controller has been disabled
2025-03-16 13:23:21,963 MainThread openlp.core.display.webengine ERROR :1 Uncaught ReferenceError: Display is not defined
2025-03-16 13:23:22,149 MainThread openlp.core.display.webengine ERROR file:///C:/Users/mickw/Downloads/OpenLPPortable/App/OpenLP/core/display/html/reveal.js:1995 Uncaught RangeError: Maximum call stack size exceeded.
2025-03-16 13:23:22,151 MainThread openlp.core.display.webengine ERROR file:///C:/Users/mickw/Downloads/OpenLPPortable/App/OpenLP/core/display/html/reveal.js:1995 Uncaught RangeError: Maximum call stack size exceeded.
2025-03-16 13:23:22,165 MainThread openlp.core.display.webengine ERROR file:///C:/Users/mickw/Downloads/OpenLPPortable/App/OpenLP/core/display/html/reveal.js:1995 Uncaught RangeError: Maximum call stack size exceeded.
2025-03-16 13:23:22,166 MainThread openlp.core.display.webengine ERROR file:///C:/Users/mickw/Downloads/OpenLPPortable/App/OpenLP/core/display/html/reveal.js:1995 Uncaught RangeError: Maximum call stack size exceeded.
2025-03-16 13:23:22,178 MainThread openlp.core.display.webengine ERROR file:///C:/Users/mickw/Downloads/OpenLPPortable/App/OpenLP/core/display/html/reveal.js:1995 Uncaught RangeError: Maximum call stack size exceeded.
2025-03-16 13:23:22,183 MainThread openlp.core.display.webengine ERROR file:///C:/Users/mickw/Downloads/OpenLPPortable/App/OpenLP/core/display/html/reveal.js:1995 Uncaught RangeError: Maximum call stack size exceeded.
2025-03-16 13:23:22,194 MainThread openlp.core.display.webengine ERROR file:///C:/Users/mickw/Downloads/OpenLPPortable/App/OpenLP/core/display/html/reveal.js:1995 Uncaught RangeError: Maximum call stack size exceeded.
2025-03-16 13:23:22,194 MainThread openlp.core.display.webengine ERROR file:///C:/Users/mickw/Downloads/OpenLPPortable/App/OpenLP/core/display/html/reveal.js:1995 Uncaught RangeError: Maximum call stack size exceeded.
2025-03-16 13:23:22,196 MainThread openlp.core.display.webengine ERROR file:///C:/Users/mickw/Downloads/OpenLPPortable/App/OpenLP/core/display/html/reveal.js:1995 Uncaught RangeError: Maximum call stack size exceeded.
2025-03-16 13:23:22,197 MainThread openlp.core.display.webengine ERROR file:///C:/Users/mickw/Downloads/OpenLPPortable/App/OpenLP/core/display/html/reveal.js:1995 Uncaught RangeError: Maximum call stack size exceeded.
2025-03-16 13:26:24,271 Dummy-2 asyncio ERROR Task was destroyed but it is pending!
task: <Task pending name='Task-3' coro=<IocpProactor.accept.<locals>.accept_coro() running at asyncio\windows_events.py:566> wait_for=<_OverlappedFuture cancelled>>