Some elements don't finish loading since php 8.2


Since our upgrade to Debian 12 (with php 8.2) some elements in Nextcloud no longer finish loading: the turning circle displays on them forever, without finishing. The problem can be seen:

  1. On the main screen, the “Talk mentions” and “upcoming events” boxes. The “Recommended files” shows the circle initially, but eventually finishes (couple of seconds)
  2. On Administration->Settings, the “Checking for system and security options”.
  3. The update (had to do the updates since then manually instead as described on Upgrade manually — Nextcloud latest Administration Manual latest documentation

Initially (during Debian upgrade to bookworm / 12), I had 25.0.7 (not sure) and had to patch lib/versioncheck.php to get it to start at all with php 8.2, but those boxes didn’t finish loading.
Later upgrades to 25.0.8 (not sure) and 26.0.3 needed same patch, and boxes still didn’t finish loading.
27.0 no longer needed patching lib/versioncheck.php, but boxes still don’t finish loading.

Any ideas?



You updated all the apps?

If yes, I’d start to look in the looks if you find any errors. If that does not help and you use many apps, I’d temporarily disable them in order to see if this solves the problem. Perhaps some apps interact and don’t work well together. The basic Nextcloud probably should work. Some apps just get the max supported version pushed forward, testing is less rigorous especially with dependencies.

You updated all the apps?

I’ve actually moved away all apps not part of standard tree. This makes one of the affected boxes (“upcoming events”) disappear, but the other one (“Talk mentions”) stays, and still doesn’t finish.

So I did 2 fresh installs, one on the affected Debian 12 machine, and another one on another Debian 12 machine that I happened to have lying around. For both installs, I accepted installation of the recommended apps that were proposed at first login.

On the fresh install from the affected machine, the problem also occurs (with “Talk mentions”, “Important mail” and “Upcoming events”). Just “recommended files” shows up all right.

On the fresh install on the other Debian 12 machine, the problem doesn’t occur: all 4 apps on the dashboard, the 4 same as above, show up correctly.

Unfortunately, the differences between the 2 Debian machines are too vast to mention (the affected one is a slimmed down server, the working one is a rather full desktop), but I tried to make at least the set of installed PHP packages the same.

data/nextcloud.log doesn’t show anything of interest.

The issue seems to be javascript, I get a “TypeError: l is undefined” in function i of line 164 of index.js. However, I don’t fully trust my Firefox browser on this one, as initially it shows another file name, core-common.js in line 2 with a huge column number, but it’s displayed too shortly for either copy-pasting or manually reading that number. That half-minified Javascript is not helping here, is there a way to get a non-minified version for debugging? Setting debug to true in config.php doesn’t seem to do anything.

Did you try a different browser/private mode? Some caches might have old information stored that could contribute, or the server might also cache something…

The config on the webservers is the same?

Did you try a different browser/private mode? Some caches might have old information stored that could contribute, or the server might also cache something…

I “Cleared recent history” multiple times.

Apache config is different (different other services running)

There are actually more javascript errors further down in the console log, and these look a little bit more reliable than the first minified one:

Uncaught ReferenceError: oc_dataURL is not defined
checkDataProtected setupChecks.js:617

Uncaught (in promise) Error: Failed to load script from undefine/js/firstrunwizard-main.js
onerror loader.js:52

Uncaught TypeError: placeholderUrl is undefined
afterCall setupChecks.js:78

but you could use the same config for the Nextcloud vhost?

Indeed, it was an issue with the Apache config. A bug in the davical Web application, to be precise. Davical also sets up a Content-Security-Policy, but they forgot to scope it to Davical’s resources, so it applied globally. Including to Nextcloud, which of course broke Nextcloud’s own Content-Security-Policy.