I had been storing my modules, themes, etc outside of the document root, and using symlinks inside the document root. This runs afoul of checkPath() when trying to update from the UI, however. So I gave up and put the physical directories back inside the docroot.

And now the site doesn't work, because the system table has the old physical locations stored in it. Nothing seems to reset or rebuild those values. I would typically use the Registry Rebuild contributed Drush command in Drupal 7 to fix this kind of thing, but it hasn't been ported (yet).

Anyone know of anything that rebuilds system from the filesystem?


It may have been some backdrop_static() values and not system. Or in addition to system. I noticed that I was getting different fatal errors on require_once statements, so by loading the site over and over, I eventually walked through all the outdated paths, and it started working again.

Ah, no, spoke too soon. The class registry information was apparently still out of date, and not reset by any kind of cache clearing, or running update.php or install.php.

I am trying to updated contributed modules through the UI, and the result of the fatal exceptions is that it thinks that the modules have been updated, when they haven't been. Now I am also getting

Error: Call to undefined function tablesort_cell() in theme_table() (line 2222 of /path/to/backdrop/www/core/includes/theme.inc).

Oh, excellent. It deletes the existing module files and then fails to update them.

Apparently PHP as an Apache module is caching some path information. Restarting the webserver seems to have cleared some of that.