Updating webtrees to 2.1.13 throws Error: Class „Fisharebest\Webtrees\Elements\FamilyResidence“ not found

Since a few days I was reported that there is a new webtrees version ready and so I just thought, why not try the automatic updater within webtrees. It worked last time, so what could go wrong?

Oh yes, it did went wrong. And I could see it while these has been the output of the updater:

Upgrade wizard

It can take several minutes to download and install the upgrade. Be patient.

Upgrade wizard

Upgrade to webtrees 2.1.13.

Create a temporary folder…

The folder data/tmp/upgrade/ has been created.

Check for pending changes…

There are no pending changes.

Export all the family trees to GEDCOM files… Familienstammbaum / Familytree of Schnapper

The family tree has been exported to schnapper-2022-12-18.ged.

Download https://github.com/fisharebest/webtrees/releases/download/2.1.13/webtrees-2.1.13.zip…

31,679 KB were downloaded in 3.34 seconds.

Unzip webtrees-2.1.13.zip to a temporary folder…

9,491 files were extracted in 12.25 seconds.

Copy files…

The upgrade is complete.

webtrees updater

And after that this error showed:

Error: Class "Fisharebest\Webtrees\Elements\FamilyResidence" not found in /homepages/14/d13457383/htdocs/ancestry/app/Gedcom.php:476 Stack trace:  /homepages/14/d13457383/htdocs/ancestry/app/Gedcom.php(1117): Fisharebest\Webtrees\Gedcom->gedcom551Tags()  /homepages/14/d13457383/htdocs/ancestry/app/Http/Middleware/RegisterGedcomTags.php(52): Fisharebest\Webtrees\Gedcom->registerTags(Object(Fisharebest\Webtrees\Factories\ElementFactory), true)  /homepages/14/d13457383/htdocs/ancestry/vendor/oscarotero/middleland/src/Dispatcher.php(136): Fisharebest\Webtrees\Http\Middleware\RegisterGedcomTags->process(Object(Nyholm\Psr7\ServerRequest), Object(Middleland\Dispatcher))  /homepages/14/d13457383/htdocs/ancestry/app/Http/Middleware/LoadRoutes.php(75): Middleland\Dispatcher->handle(Object(Nyholm\Psr7\ServerRequest))  /homepages/14/d13457383/htdocs/ancestry/vendor/oscarotero/middleland/src/Dispatcher.php(136): Fisharebest\Webtrees\Http\Middleware\LoadRoutes->process(Object(Nyholm\Psr7\ServerRequest), Object(Middleland\Dispatcher))  /homepages/14/d13457383/htdocs/ancestry/app/Http/Middleware/CheckForNewVersion.php(57): Middleland\Dispatcher->handle(Object(Nyholm\Psr7\ServerRequest))  /homepages/14/d13457383/htdocs/ancestry/vendor/oscarotero/middleland/src/Dispatcher.php(136): Fisharebest\Webtrees\Http\Middleware\CheckForNewVersion->process(Object(Nyholm\Psr7\ServerRequest), Object(Middleland\Dispatcher))  /homepages/14/d13457383/htdocs/ancestry/app/Http/Middleware/UseTransaction.php(45): Middleland\Dispatcher->handle(Object(Nyholm\Psr7\ServerRequest))  /homepages/14/d13457383/htdocs/ancestry/vendor/illuminate/database/Concerns/ManagesTransactions.php(29): Fisharebest\Webtrees\Http\Middleware\UseTransaction::Fisharebest\Webtrees\Http\Middleware\{closure}(Object(Illuminate\Database\MySqlConnection))  /homepages/14/d13457383/htdocs/ancestry/app/Http/Middleware/UseTransaction.php(46): Illuminate\Database\Connection->transaction(Object(Closure), 3)  /homepages/14/d13457383/htdocs/ancestry/vendor/oscarotero/middleland/src/Dispatcher.php(136): Fisharebest\Webtrees\Http\Middleware\UseTransaction->process(Object(Nyholm\Psr7\ServerRequest), Object(Middleland\Dispatcher)) #11 /homepages/14/d13457383/htdocs/ancestry/app/Http/Middleware/DoHousekeeping.php(73): Middleland\Dispatcher->handle(Object(Nyholm\Psr7\ServerRequest))  /homepages/14/d13457383/htdocs/ancestry/vendor/oscarotero/middleland/src/Dispatcher.php(136): Fisharebest\Webtrees\Http\Middleware\DoHousekeeping->process(Object(Nyholm\Psr7\ServerRequest), Object(Middleland\Dispatcher))  /homepages/14/d13457383/htdocs/ancestry/app/Http/Middleware/UseTheme.php(69): Middleland\Dispatcher->handle(Object(Nyholm\Psr7\ServerRequest))  /homepages/14/d13457383/htdocs/ancestry/vendor/oscarotero/middleland/src/Dispatcher.php(136): Fisharebest\Webtrees\Http\Middleware\UseTheme->process(Object(Nyholm\Psr7\ServerRequest), Object(Middleland\Dispatcher))  /homepages/14/d13457383/htdocs/ancestry/app/Http/Middleware/CheckForMaintenanceMode.php(51): Middleland\Dispatcher->handle(Object(Nyholm\Psr7\ServerRequest))  /homepages/14/d13457383/htdocs/ancestry/vendor/oscarotero/middleland/src/Dispatcher.php(136): Fisharebest\Webtrees\Http\Middleware\CheckForMaintenanceMode->process(Object(Nyholm\Psr7\ServerRequest), Object(Middleland\Dispatcher))  /homepages/14/d13457383/htdocs/ancestry/app/Http/Middleware/UseLanguage.php(71): Middleland\Dispatcher->handle(Object(Nyholm\Psr7\ServerRequest))  /homepages/14/d13457383/htdocs/ancestry/vendor/oscarotero/middleland/src/Dispatcher.php(136): Fisharebest\Webtrees\Http\Middleware\UseLanguage->process(Object(Nyholm\Psr7\ServerRequest), Object(Middleland\Dispatcher))  /homepages/14/d13457383/htdocs/ancestry/app/Http/Middleware/UseSession.php(78): Middleland\Dispatcher->handle(Object(Nyholm\Psr7\ServerRequest))  /homepages/14/d13457383/htdocs/ancestry/vendor/oscarotero/middleland/src/Dispatcher.php(136): Fisharebest\Webtrees\Http\Middleware\UseSession->process(Object(Nyholm\Psr7\ServerRequest), Object(Middleland\Dispatcher))  /homepages/14/d13457383/htdocs/ancestry/app/Http/Middleware/UpdateDatabaseSchema.php(57): Middleland\Dispatcher->handle(Object(Nyholm\Psr7\ServerRequest))  /homepages/14/d13457383/htdocs/ancestry/vendor/oscarotero/middleland/src/Dispatcher.php(136): Fisharebest\Webtrees\Http\Middleware\UpdateDatabaseSchema->process(Object(Nyholm\Psr7\ServerRequest), Object(Middleland\Dispatcher))  /homepages/14/d13457383/htdocs/ancestry/app/Http/Middleware/UseDatabase.php(118): Middleland\Dispatcher->handle(Object(Nyholm\Psr7\ServerRequest))  /homepages/14/d13457383/htdocs/ancestry/vendor/oscarotero/middleland/src/Dispatcher.php(136): Fisharebest\Webtrees\Http\Middleware\UseDatabase->process(Object(Nyholm\Psr7\ServerRequest), Object(Middleland\Dispatcher))  /homepages/14/d13457383/htdocs/ancestry/app/Http/Middleware/BadBotBlocker.php(245): Middleland\Dispatcher->handle(Object(Nyholm\Psr7\ServerRequest))  /homepages/14/d13457383/htdocs/ancestry/vendor/oscarotero/middleland/src/Dispatcher.php(136): Fisharebest\Webtrees\Http\Middleware\BadBotBlocker->process(Object(Nyholm\Psr7\ServerRequest), Object(Middleland\Dispatcher))  /homepages/14/d13457383/htdocs/ancestry/app/Http/Middleware/CompressResponse.php(73): Middleland\Dispatcher->handle(Object(Nyholm\Psr7\ServerRequest))  /homepages/14/d13457383/htdocs/ancestry/vendor/oscarotero/middleland/src/Dispatcher.php(136): Fisharebest\Webtrees\Http\Middleware\CompressResponse->process(Object(Nyholm\Psr7\ServerRequest), Object(Middleland\Dispatcher))  /homepages/14/d13457383/htdocs/ancestry/app/Http/Middleware/ContentLength.php(40): Middleland\Dispatcher->handle(Object(Nyholm\Psr7\ServerRequest))  /homepages/14/d13457383/htdocs/ancestry/vendor/oscarotero/middleland/src/Dispatcher.php(136): Fisharebest\Webtrees\Http\Middleware\ContentLength->process(Object(Nyholm\Psr7\ServerRequest), Object(Middleland\Dispatcher))  /homepages/14/d13457383/htdocs/ancestry/vendor/middlewares/client-ip/src/ClientIp.php(65): Middleland\Dispatcher->handle(Object(Nyholm\Psr7\ServerRequest))  /homepages/14/d13457383/htdocs/ancestry/app/Http/Middleware/ClientIp.php(47): Middlewares\ClientIp->process(Object(Nyholm\Psr7\ServerRequest), Object(Middleland\Dispatcher))  /homepages/14/d13457383/htdocs/ancestry/vendor/oscarotero/middleland/src/Dispatcher.php(136): Fisharebest\Webtrees\Http\Middleware\ClientIp->process(Object(Nyholm\Psr7\ServerRequest), Object(Middleland\Dispatcher))  /homepages/14/d13457383/htdocs/ancestry/app/Http/Middleware/HandleExceptions.php(90): Middleland\Dispatcher->handle(Object(Nyholm\Psr7\ServerRequest))  /homepages/14/d13457383/htdocs/ancestry/vendor/oscarotero/middleland/src/Dispatcher.php(136): Fisharebest\Webtrees\Http\Middleware\HandleExceptions->process(Object(Nyholm\Psr7\ServerRequest), Object(Middleland\Dispatcher))  /homepages/14/d13457383/htdocs/ancestry/app/Http/Middleware/BaseUrl.php(73): Middleland\Dispatcher->handle(Object(Nyholm\Psr7\ServerRequest))  /homepages/14/d13457383/htdocs/ancestry/vendor/oscarotero/middleland/src/Dispatcher.php(136): Fisharebest\Webtrees\Http\Middleware\BaseUrl->process(Object(Nyholm\Psr7\ServerRequest), Object(Middleland\Dispatcher))  /homepages/14/d13457383/htdocs/ancestry/app/Http/Middleware/ReadConfigIni.php(68): Middleland\Dispatcher->handle(Object(Nyholm\Psr7\ServerRequest))  /homepages/14/d13457383/htdocs/ancestry/vendor/oscarotero/middleland/src/Dispatcher.php(136): Fisharebest\Webtrees\Http\Middleware\ReadConfigIni->process(Object(Nyholm\Psr7\ServerRequest), Object(Middleland\Dispatcher))  /homepages/14/d13457383/htdocs/ancestry/app/Http/Middleware/SecurityHeaders.php(48): Middleland\Dispatcher->handle(Object(Nyholm\Psr7\ServerRequest))  /homepages/14/d13457383/htdocs/ancestry/vendor/oscarotero/middleland/src/Dispatcher.php(136): Fisharebest\Webtrees\Http\Middleware\SecurityHeaders->process(Object(Nyholm\Psr7\ServerRequest), Object(Middleland\Dispatcher))  /homepages/14/d13457383/htdocs/ancestry/app/Http/Middleware/EmitResponse.php(57): Middleland\Dispatcher->handle(Object(Nyholm\Psr7\ServerRequest))  /homepages/14/d13457383/htdocs/ancestry/vendor/oscarotero/middleland/src/Dispatcher.php(136): Fisharebest\Webtrees\Http\Middleware\EmitResponse->process(Object(Nyholm\Psr7\ServerRequest), Object(Middleland\Dispatcher))  /homepages/14/d13457383/htdocs/ancestry/vendor/oscarotero/middleland/src/Dispatcher.php(118): Middleland\Dispatcher->handle(Object(Nyholm\Psr7\ServerRequest))  /homepages/14/d13457383/htdocs/ancestry/app/Webtrees.php(275): Middleland\Dispatcher->dispatch(Object(Nyholm\Psr7\ServerRequest))  /homepages/14/d13457383/htdocs/ancestry/app/Webtrees.php(262): Fisharebest\Webtrees\Webtrees::dispatch(Object(Nyholm\Psr7\ServerRequest), Array)  /homepages/14/d13457383/htdocs/ancestry/index.php(51): Fisharebest\Webtrees\Webtrees->httpRequest()  {main}

So the automatic update screwed my family installation. Thanks.

Webtrees forum

Of course I am a bit frustrated, because actually I am more than cautious when it comes to updates on open source software where I am not involved (due to time) and don’t know how or if there is a good bug testing or quality assurance before releasing the new update to public. But I copied the error into a search engine and whoooops, there it shows an entry (result) in the webtrees forum – and I am not the only one who experienced that or similar problem after the update.

Suggested Solution

So the suggested solution comes from Greg himself. Or even also from other users, here in this thread they also point manual solutions:

Some solutions there might be:

  • uploaded the ‚app‘ folder to the server
  • Problem solved after manually uploading the webtrees-2.1.13.zip file.
  • manually replacing app/Gedcom.php with the version extracted from the zip archive apparently solved the issue – everything seems to be working.

After reading more and more comments, I nearly overlooked this important comment from „hermann“:

have you read webtrees.net/upgrade/

There is an important sentence regarding 2.1.8 and 2.1.9:

These two versions of webtrees contain a bug in the auto-upgrade code. The upgrade will appear to run successfully, but it does not install any files. The bug is in the file app/Http/RequestHandlers/UpgradeWizardStep.php. You can download an updated version of this file from here .

Webtrees forum


So that is interesting and I might later at some point upload the updated version manually and see if this fixes my problem. Until then I just leave the error message shown – as no other person is anyhow working on my family ancestry webtrees. But I will post another blog or update this blogpost when I got it fixed with above solutions.

Working solution

Here is the solution which really helped on my installation – neither updating one file helped or uploading a folder. I just downloaded a fresh copy of wordpress zip (of course then unzipped) to the server and then it worked.

2 Kommentare

  1. I had the same issue, from version 2.1.11. All upgrades failed with the same behaviour as you described. Found your article and updated the UpgradeWizardStep.php file. After this, the update worked smoothly.

    1. Hi JPS, yeah, good that it worked out for you, too. Hopefully it won’t happen again in the future updates. And good that we can exchange our „problems“ 😉

Kommentar hinterlassen

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert