Viewing posts results in page getting stuck on loading screen
Site
phanpy.social
Version
2024.11.15.12bd3b3
Instance
meow.social
Browser
Firefox 131.0 on Linux Firefox 131.0.2 on Linux Firefox 131.0.3 on Linux
Bug description
Any attempt to view a post (i.e. by clicking a post on the home feed, clicking "View post" button in media view, clicking post in notifications menu, etc.) causes the page to get stuck on a loading screen. Attempting to click out of the unloaded post changes the URL in the address bar of the browser, but does not successfully exit the loading screen. The only way out of this state is to reload or close the tab.
The loading view where the page becomes stuck:
Clicking outside of the unloaded post changes URL in address bar, but does not update page until tab is refreshed:
Refreshing while still inside post causes home feed in background to appear to load indefinitely as well:
To reproduce
- Install any of the listed Firefox versions on Linux (I am unsure of exactly when this issue was introduced, but it occurs reliably on all three of those versions for me)
- Go to your home feed on phanpy.social
- Click any post; it will fail to display the enlarged post and appear to load indefinitely
Expected behavior
The post should open in the enlarged view, as it does on other browsers/platforms, and clicking outside of the post should successfully exit to the previous view.
Other
No response
@o-dawgie this is a little difficult for me to find the cause. Are you able to open devtools and see if there are any related errors in the console? 🙇♂️
Sure, with Firefox launched in safe mode to eliminate any extension-related shenanigans, I get the following error message in my console upon opening phanpy.social in a new tab:
Uncaught (in promise) DOMException: Element.querySelectorAll: '.mention, .hashtag, pre, code, a:has(.invisible)' is not a valid selector
preProcess https://phanpy.social/assets/fuse-ifSC9npm.js:145
tu https://phanpy.social/assets/fuse-ifSC9npm.js:15
A https://phanpy.social/assets/useTitle-3jDtTFzV.js:37
zd https://phanpy.social/assets/fuse-ifSC9npm.js:145
v https://phanpy.social/assets/fuse-ifSC9npm.js:145
setTimeout handler*Qt/< https://phanpy.social/assets/fuse-ifSC9npm.js:145
Ir https://phanpy.social/assets/useTitle-3jDtTFzV.js:10
__r https://phanpy.social/assets/useTitle-3jDtTFzV.js:10
__r https://phanpy.social/assets/useTitle-3jDtTFzV.js:10
en https://phanpy.social/assets/useTitle-3jDtTFzV.js:10
zt https://phanpy.social/assets/useTitle-3jDtTFzV.js:10
promise callback*Nr https://phanpy.social/assets/useTitle-3jDtTFzV.js:10
setState https://phanpy.social/assets/useTitle-3jDtTFzV.js:10
__ https://phanpy.social/assets/useTitle-3jDtTFzV.js:10
j https://phanpy.social/assets/main-AM0jumi9.js:33
j https://phanpy.social/assets/main-AM0jumi9.js:33
E https://phanpy.social/assets/fuse-ifSC9npm.js:113
L https://phanpy.social/assets/fuse-ifSC9npm.js:113
St https://phanpy.social/assets/main-AM0jumi9.js:33
Ir https://phanpy.social/assets/useTitle-3jDtTFzV.js:10
__r https://phanpy.social/assets/useTitle-3jDtTFzV.js:10
__r https://phanpy.social/assets/useTitle-3jDtTFzV.js:10
en https://phanpy.social/assets/useTitle-3jDtTFzV.js:10
zt https://phanpy.social/assets/useTitle-3jDtTFzV.js:10
promise callback*Nr https://phanpy.social/assets/useTitle-3jDtTFzV.js:10
setState https://phanpy.social/assets/useTitle-3jDtTFzV.js:10
__ https://phanpy.social/assets/useTitle-3jDtTFzV.js:10
Wl https://phanpy.social/assets/main-AM0jumi9.js:33
Wl https://phanpy.social/assets/main-AM0jumi9.js:33
Ir https://phanpy.social/assets/useTitle-3jDtTFzV.js:10
Es https://phanpy.social/assets/useTitle-3jDtTFzV.js:10
setTimeout handler*r https://phanpy.social/assets/useTitle-3jDtTFzV.js:10
Ss https://phanpy.social/assets/useTitle-3jDtTFzV.js:10
diffed https://phanpy.social/assets/useTitle-3jDtTFzV.js:10
diffed https://phanpy.social/assets/useTitle-3jDtTFzV.js:10
en https://phanpy.social/assets/useTitle-3jDtTFzV.js:10
Jo https://phanpy.social/assets/useTitle-3jDtTFzV.js:10
en https://phanpy.social/assets/useTitle-3jDtTFzV.js:10
Jo https://phanpy.social/assets/useTitle-3jDtTFzV.js:10
en https://phanpy.social/assets/useTitle-3jDtTFzV.js:10
Jo https://phanpy.social/assets/useTitle-3jDtTFzV.js:10
en https://phanpy.social/assets/useTitle-3jDtTFzV.js:10
Jo https://phanpy.social/assets/useTitle-3jDtTFzV.js:10
en https://phanpy.social/assets/useTitle-3jDtTFzV.js:10
Jo https://phanpy.social/assets/useTitle-3jDtTFzV.js:10
en https://phanpy.social/assets/useTitle-3jDtTFzV.js:10
Jo https://phanpy.social/assets/useTitle-3jDtTFzV.js:10
en https://phanpy.social/assets/useTitle-3jDtTFzV.js:10
Jo https://phanpy.social/assets/useTitle-3jDtTFzV.js:10
en https://phanpy.social/assets/useTitle-3jDtTFzV.js:10
At https://phanpy.social/assets/useTitle-3jDtTFzV.js:10
<anonymous> https://phanpy.social/assets/main-AM0jumi9.js:33
4 fuse-ifSC9npm.js:145
preProcess https://phanpy.social/assets/fuse-ifSC9npm.js:145
tu https://phanpy.social/assets/fuse-ifSC9npm.js:15
A https://phanpy.social/assets/useTitle-3jDtTFzV.js:37
zd https://phanpy.social/assets/fuse-ifSC9npm.js:145
v https://phanpy.social/assets/fuse-ifSC9npm.js:145
(Async: setTimeout handler)
Qt https://phanpy.social/assets/fuse-ifSC9npm.js:145
Ir https://phanpy.social/assets/useTitle-3jDtTFzV.js:10
forEach self-hosted:160
__r https://phanpy.social/assets/useTitle-3jDtTFzV.js:10
__r https://phanpy.social/assets/useTitle-3jDtTFzV.js:10
en https://phanpy.social/assets/useTitle-3jDtTFzV.js:10
zt https://phanpy.social/assets/useTitle-3jDtTFzV.js:10
(Async: promise callback)
Nr https://phanpy.social/assets/useTitle-3jDtTFzV.js:10
setState https://phanpy.social/assets/useTitle-3jDtTFzV.js:10
__ https://phanpy.social/assets/useTitle-3jDtTFzV.js:10
j https://phanpy.social/assets/main-AM0jumi9.js:33
InterpretGeneratorResume self-hosted:1420
AsyncFunctionNext self-hosted:807
(Async: async)
j https://phanpy.social/assets/main-AM0jumi9.js:33
E https://phanpy.social/assets/fuse-ifSC9npm.js:113
L https://phanpy.social/assets/fuse-ifSC9npm.js:113
St https://phanpy.social/assets/main-AM0jumi9.js:33
Ir https://phanpy.social/assets/useTitle-3jDtTFzV.js:10
forEach self-hosted:160
__r https://phanpy.social/assets/useTitle-3jDtTFzV.js:10
__r https://phanpy.social/assets/useTitle-3jDtTFzV.js:10
en https://phanpy.social/assets/useTitle-3jDtTFzV.js:10
zt https://phanpy.social/assets/useTitle-3jDtTFzV.js:10
(Async: promise callback)
Nr https://phanpy.social/assets/useTitle-3jDtTFzV.js:10
setState https://phanpy.social/assets/useTitle-3jDtTFzV.js:10
__ https://phanpy.social/assets/useTitle-3jDtTFzV.js:10
Wl https://phanpy.social/assets/main-AM0jumi9.js:33
Wl https://phanpy.social/assets/main-AM0jumi9.js:33
Ir https://phanpy.social/assets/useTitle-3jDtTFzV.js:10
forEach self-hosted:160
Es https://phanpy.social/assets/useTitle-3jDtTFzV.js:10
(Async: setTimeout handler)
r https://phanpy.social/assets/useTitle-3jDtTFzV.js:10
(Async: FrameRequestCallback)
Ss https://phanpy.social/assets/useTitle-3jDtTFzV.js:10
diffed https://phanpy.social/assets/useTitle-3jDtTFzV.js:10
diffed https://phanpy.social/assets/useTitle-3jDtTFzV.js:10
en https://phanpy.social/assets/useTitle-3jDtTFzV.js:10
Jo https://phanpy.social/assets/useTitle-3jDtTFzV.js:10
en https://phanpy.social/assets/useTitle-3jDtTFzV.js:10
Jo https://phanpy.social/assets/useTitle-3jDtTFzV.js:10
en https://phanpy.social/assets/useTitle-3jDtTFzV.js:10
Jo https://phanpy.social/assets/useTitle-3jDtTFzV.js:10
en https://phanpy.social/assets/useTitle-3jDtTFzV.js:10
Jo https://phanpy.social/assets/useTitle-3jDtTFzV.js:10
en https://phanpy.social/assets/useTitle-3jDtTFzV.js:10
Jo https://phanpy.social/assets/useTitle-3jDtTFzV.js:10
en https://phanpy.social/assets/useTitle-3jDtTFzV.js:10
Jo https://phanpy.social/assets/useTitle-3jDtTFzV.js:10
en https://phanpy.social/assets/useTitle-3jDtTFzV.js:10
Jo https://phanpy.social/assets/useTitle-3jDtTFzV.js:10
en https://phanpy.social/assets/useTitle-3jDtTFzV.js:10
At https://phanpy.social/assets/useTitle-3jDtTFzV.js:10
<anonymous> https://phanpy.social/assets/main-AM0jumi9.js:33
The above message isn't always exactly the same, but the gist of it seems to be pretty constant. Similar errors also get repeated as I scroll and load more posts.
When I click on a post from my home timeline, another error pops up:
Uncaught (in promise) DOMException: Element.querySelectorAll: '.mention, pre, code, a:has(.invisible)' is not a valid selector
preProcess https://phanpy.social/assets/fuse-ifSC9npm.js:145
tu https://phanpy.social/assets/fuse-ifSC9npm.js:15
A https://phanpy.social/assets/useTitle-3jDtTFzV.js:37
Fd https://phanpy.social/assets/fuse-ifSC9npm.js:145
Qt https://phanpy.social/assets/fuse-ifSC9npm.js:146
vs https://phanpy.social/assets/useTitle-3jDtTFzV.js:10
en https://phanpy.social/assets/useTitle-3jDtTFzV.js:10
Jo https://phanpy.social/assets/useTitle-3jDtTFzV.js:10
en https://phanpy.social/assets/useTitle-3jDtTFzV.js:10
Jo https://phanpy.social/assets/useTitle-3jDtTFzV.js:10
gs https://phanpy.social/assets/useTitle-3jDtTFzV.js:10
en https://phanpy.social/assets/useTitle-3jDtTFzV.js:10
Jo https://phanpy.social/assets/useTitle-3jDtTFzV.js:10
en https://phanpy.social/assets/useTitle-3jDtTFzV.js:10
Jo https://phanpy.social/assets/useTitle-3jDtTFzV.js:10
en https://phanpy.social/assets/useTitle-3jDtTFzV.js:10
Jo https://phanpy.social/assets/useTitle-3jDtTFzV.js:10
gs https://phanpy.social/assets/useTitle-3jDtTFzV.js:10
en https://phanpy.social/assets/useTitle-3jDtTFzV.js:10
Jo https://phanpy.social/assets/useTitle-3jDtTFzV.js:10
en https://phanpy.social/assets/useTitle-3jDtTFzV.js:10
Jo https://phanpy.social/assets/useTitle-3jDtTFzV.js:10
gs https://phanpy.social/assets/useTitle-3jDtTFzV.js:10
en https://phanpy.social/assets/useTitle-3jDtTFzV.js:10
Jo https://phanpy.social/assets/useTitle-3jDtTFzV.js:10
gs https://phanpy.social/assets/useTitle-3jDtTFzV.js:10
en https://phanpy.social/assets/useTitle-3jDtTFzV.js:10
Jo https://phanpy.social/assets/useTitle-3jDtTFzV.js:10
en https://phanpy.social/assets/useTitle-3jDtTFzV.js:10
zt https://phanpy.social/assets/useTitle-3jDtTFzV.js:10
promise callback*Nr https://phanpy.social/assets/useTitle-3jDtTFzV.js:10
setState https://phanpy.social/assets/useTitle-3jDtTFzV.js:10
__ https://phanpy.social/assets/useTitle-3jDtTFzV.js:10
W https://phanpy.social/assets/main-AM0jumi9.js:33
Ir https://phanpy.social/assets/useTitle-3jDtTFzV.js:10
Es https://phanpy.social/assets/useTitle-3jDtTFzV.js:10
setTimeout handler*r https://phanpy.social/assets/useTitle-3jDtTFzV.js:10
Ss https://phanpy.social/assets/useTitle-3jDtTFzV.js:10
diffed https://phanpy.social/assets/useTitle-3jDtTFzV.js:10
diffed https://phanpy.social/assets/useTitle-3jDtTFzV.js:10
en https://phanpy.social/assets/useTitle-3jDtTFzV.js:10
Jo https://phanpy.social/assets/useTitle-3jDtTFzV.js:10
gs https://phanpy.social/assets/useTitle-3jDtTFzV.js:10
en https://phanpy.social/assets/useTitle-3jDtTFzV.js:10
Jo https://phanpy.social/assets/useTitle-3jDtTFzV.js:10
en https://phanpy.social/assets/useTitle-3jDtTFzV.js:10
Jo https://phanpy.social/assets/useTitle-3jDtTFzV.js:10
gs https://phanpy.social/assets/useTitle-3jDtTFzV.js:10
en https://phanpy.social/assets/useTitle-3jDtTFzV.js:10
Jo https://phanpy.social/assets/useTitle-3jDtTFzV.js:10
gs https://phanpy.social/assets/useTitle-3jDtTFzV.js:10
en https://phanpy.social/assets/useTitle-3jDtTFzV.js:10
Jo https://phanpy.social/assets/useTitle-3jDtTFzV.js:10
gs https://phanpy.social/assets/useTitle-3jDtTFzV.js:10
en https://phanpy.social/assets/useTitle-3jDtTFzV.js:10
Jo https://phanpy.social/assets/useTitle-3jDtTFzV.js:10
gs https://phanpy.social/assets/useTitle-3jDtTFzV.js:10
en https://phanpy.social/assets/useTitle-3jDtTFzV.js:10
Jo https://phanpy.social/assets/useTitle-3jDtTFzV.js:10
en https://phanpy.social/assets/useTitle-3jDtTFzV.js:10
Jo https://phanpy.social/assets/useTitle-3jDtTFzV.js:10
gs https://phanpy.social/assets/useTitle-3jDtTFzV.js:10
en https://phanpy.social/assets/useTitle-3jDtTFzV.js:10
Jo https://phanpy.social/assets/useTitle-3jDtTFzV.js:10
en https://phanpy.social/assets/useTitle-3jDtTFzV.js:10
Jo https://phanpy.social/assets/useTitle-3jDtTFzV.js:10
en https://phanpy.social/assets/useTitle-3jDtTFzV.js:10
fuse-ifSC9npm.js:145
__e https://phanpy.social/assets/useTitle-3jDtTFzV.js:10
__e https://phanpy.social/assets/useTitle-3jDtTFzV.js:10
en https://phanpy.social/assets/useTitle-3jDtTFzV.js:10
zt https://phanpy.social/assets/useTitle-3jDtTFzV.js:10
(Async: promise callback)
Nr https://phanpy.social/assets/useTitle-3jDtTFzV.js:10
setState https://phanpy.social/assets/useTitle-3jDtTFzV.js:10
__ https://phanpy.social/assets/useTitle-3jDtTFzV.js:10
W https://phanpy.social/assets/main-AM0jumi9.js:33
Ir https://phanpy.social/assets/useTitle-3jDtTFzV.js:10
forEach self-hosted:160
Es https://phanpy.social/assets/useTitle-3jDtTFzV.js:10
(Async: setTimeout handler)
r https://phanpy.social/assets/useTitle-3jDtTFzV.js:10
(Async: FrameRequestCallback)
Ss https://phanpy.social/assets/useTitle-3jDtTFzV.js:10
diffed https://phanpy.social/assets/useTitle-3jDtTFzV.js:10
diffed https://phanpy.social/assets/useTitle-3jDtTFzV.js:10
en https://phanpy.social/assets/useTitle-3jDtTFzV.js:10
Jo https://phanpy.social/assets/useTitle-3jDtTFzV.js:10
gs https://phanpy.social/assets/useTitle-3jDtTFzV.js:10
en https://phanpy.social/assets/useTitle-3jDtTFzV.js:10
Jo https://phanpy.social/assets/useTitle-3jDtTFzV.js:10
en https://phanpy.social/assets/useTitle-3jDtTFzV.js:10
Jo https://phanpy.social/assets/useTitle-3jDtTFzV.js:10
gs https://phanpy.social/assets/useTitle-3jDtTFzV.js:10
en https://phanpy.social/assets/useTitle-3jDtTFzV.js:10
Jo https://phanpy.social/assets/useTitle-3jDtTFzV.js:10
gs https://phanpy.social/assets/useTitle-3jDtTFzV.js:10
en https://phanpy.social/assets/useTitle-3jDtTFzV.js:10
Jo https://phanpy.social/assets/useTitle-3jDtTFzV.js:10
gs https://phanpy.social/assets/useTitle-3jDtTFzV.js:10
en https://phanpy.social/assets/useTitle-3jDtTFzV.js:10
Jo https://phanpy.social/assets/useTitle-3jDtTFzV.js:10
gs https://phanpy.social/assets/useTitle-3jDtTFzV.js:10
en https://phanpy.social/assets/useTitle-3jDtTFzV.js:10
Jo https://phanpy.social/assets/useTitle-3jDtTFzV.js:10
en https://phanpy.social/assets/useTitle-3jDtTFzV.js:10
Jo https://phanpy.social/assets/useTitle-3jDtTFzV.js:10
gs https://phanpy.social/assets/useTitle-3jDtTFzV.js:10
en https://phanpy.social/assets/useTitle-3jDtTFzV.js:10
Jo https://phanpy.social/assets/useTitle-3jDtTFzV.js:10
en https://phanpy.social/assets/useTitle-3jDtTFzV.js:10
Jo https://phanpy.social/assets/useTitle-3jDtTFzV.js:10
en https://phanpy.social/assets/useTitle-3jDtTFzV.js:10
This one also seems to vary a bit in length/content depending on the specific post, but the general vibe is more or less constant
Hope this helps; I'm not super familiar with the Firefox devtools/console/logs, so if I missed anything important let me know and I'll have another look
@o-dawgie is it possible for you to test if this bug happens on the dev site too? (https://dev.phanpy.social/)
If the bug happens there, I can immediately apply a fix and ping you to check again, as deployment is faster on dev site than production 🙇♂️
@cheeaun I just did a quick test, and it appears that the same bug is indeed happening on the dev site with similar/the same error messages
@o-dawgie try again.
@cheeaun Whatever change you made seems to have fixed things! The dev site is now loading posts normally and the error message I was seeing seems to be gone.