BlogE-commercebeheer

Update Assistant vastgelopen: een PrestaShop 9-update herstellen

Cache die niet leegloopt, een ontbrekende Symfony-service, een proces dat halverwege stopt: de echte fouten van de Update Assistant en de weg via CLI.

Presta Debug29 juli 2026 5 min leestijd
Verbroken updatelus en een vastgelopen voortgangsbalk

Een mislukte update laat de webshop in een instabiele staat achter

De Update Assistant van PrestaShop is een prima hulpmiddel zolang alles goed gaat. Loopt hij halverwege vast, dan staat de site met bestanden op versie 9 en een database op versie 8, wat onleesbare 500-fouten oplevert. De eerste regel is dus eenvoudig: begin nooit aan een update zonder een terugzetbare, geteste back-up.

Hieronder de storingen die wij tijdens interventies het vaakst zien, met hun oorzaak en hun workaround.

"Can't empty cache directory"

Dit is de meest voorkomende fout bij de sprong van 9.0.x naar 9.1.x, zeker onder PHP 8.4.

De module probeert var/cache/ te legen en stuit op bestanden die aan een andere systeemgebruiker toebehoren, meestal doordat er commando's via SSH zijn uitgevoerd onder een ander account dan dat van de webserver.

Workaround:

rm -rf var/cache/prod var/cache/dev
chown -R www-data:www-data var/

Pas de gebruiker aan uw hostingomgeving aan. Verwijder nooit var/cache zelf, alleen de inhoud ervan.

"has a dependency on a non-existent service mbo.modules.repository"

Deze fout, die tijdens de versiecontrole een HTTP 500 oplevert, komt voort uit een inconsistente dependency-injectiecontainer van Symfony: de MBO-module (de ingebouwde marketplace) is wel gedeclareerd, maar de bijbehorende services zijn niet opgebouwd.

Drie acties, in deze volgorde:

  1. Werk eerst de Update Assistant zelf bij. Een verouderde versie van de module is nog altijd oorzaak nummer één.
  2. Verwijder de inhoud van var/cache/ en controleer of de map app/cache/ bestaat en beschrijfbaar is.
  3. Zet ps_mbo tijdelijk op inactief in ps_module en start opnieuw.

Het proces stopt zonder melding

Op gedeelde hosting loopt de Update Assistant tegen drie onzichtbare grenzen aan: max_execution_time, het geheugen en de timeout van de webserver zelf. De interface toont dan een eindeloos draaiend wieltje.

De oplossing is overstappen op de commandoregel, die geen HTTP-timeout kent:

php modules/autoupgrade/bin/console update:start --config-file-path=config.json

Controleer vooraf of symlink() niet in de lijst disable_functions van uw PHP-configuratie staat: zonder die functie mislukt het omwisselen van de mappen stilzwijgend. Zet memory_limit op -1 voor de duur van de operatie.

De valkuil van handmatig hervatten

Als de update halverwege strandt, is de verleiding groot om de SQL-migratiebestanden "met de hand" na te spelen. Dat is een valkuil.

Die bestanden bevatten PHP-instructies verpakt in SQL-commentaar, in de vorm /* PHP:add_column(...) */. Voert u ze uit in phpMyAdmin, dan wordt dat commentaar genegeerd: de databasestructuur lijkt gemigreerd, terwijl er kolommen en gegevens ontbreken. De symptomen duiken weken later op, bij een functie die u zelden gebruikt.

Mislukt de migratie, zet dan de back-up terug en begin opnieuw. Repareer nooit een half toegepaste migratie.

De voorbereiding die 80 % van de mislukkingen voorkomt

Voordat u iets start:

  • Maak een back-up van bestanden en database en test het terugzetten in een aparte omgeving.
  • Schakel alle niet-native modules uit. Een module die tijdens de updatefase crasht, legt het hele proces stil. Daarna zet u ze één voor één weer aan.
  • Stap tijdelijk terug naar het thema Classic, vooral als uw thema templates van de core overschrijft.
  • Controleer de PHP-versie. PrestaShop 9 vereist minimaal PHP 8.1 en werkt tot en met 8.4. Een update die op PHP 7.4 wordt gestart, mislukt gegarandeerd.
  • Controleer de schijfruimte. Het proces dupliceert de volledige site: reken op minstens tweemaal de huidige omvang.
  • Breng incompatibele modules in kaart. PrestaShop 9 heeft Guzzle, League Tactician en Swift Mailer verwijderd. Elke module die daarvan afhankelijk is, geeft na de omschakeling een fatale fout.

Na de update: de acceptatietest die telt

Een "geslaagde" update is pas geslaagd als deze punten zijn nagelopen:

  1. Plaats een bestelling van begin tot eind, inclusief een echte betaling.
  2. Controleer of de transactionele e-mails aankomen; die sneuvelen bij de overgang naar 9 vaak door de gewijzigde verzendbibliotheek.
  3. Test de vervoerders en de afhaalpuntwidgets in het bestelproces.
  4. Genereer de thumbnails opnieuw en controleer de weergave van de productafbeeldingen.
  5. Lees var/logs/ door: de deprecation-waarschuwingen van vandaag zijn de storingen van de volgende versie.

Twijfelt u over de overstap naar versie 9, dan helpt ons artikel over het einde van de ondersteuning van PrestaShop 8 u bij het bepalen van het juiste moment, en onze pagina PrestaShop-migratie beschrijft onze werkwijze.

Zit uw update op dit moment vast?

Wij hervatten afgebroken migraties, ook wanneer de webshop al offline is. Gratis diagnose, reactie binnen 1 uur, van 9 tot 22 uur, 7 dagen per week.