phanpy icon indicating copy to clipboard operation
phanpy copied to clipboard

Viewing posts results in page getting stuck on loading screen

Open o-dawgie opened this issue 1 year ago • 6 comments

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: image

Clicking outside of the unloaded post changes URL in address bar, but does not update page until tab is refreshed: image

Refreshing while still inside post causes home feed in background to appear to load indefinitely as well: image

To reproduce

  1. 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)
  2. Go to your home feed on phanpy.social
  3. 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 avatar Nov 19 '24 15:11 o-dawgie

@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? 🙇‍♂️

cheeaun avatar Nov 19 '24 15:11 cheeaun

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 avatar Nov 19 '24 16:11 o-dawgie

@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 avatar Nov 20 '24 01:11 cheeaun

@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 avatar Nov 20 '24 15:11 o-dawgie

@o-dawgie try again.

cheeaun avatar Nov 20 '24 16:11 cheeaun

@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.

o-dawgie avatar Nov 20 '24 18:11 o-dawgie