NLfood Congos Storingsrapportopgesteld door Congos
NLfood B2B webshop · b2b.nlfood.nl

Storing winkelmandjes & artikelweergave

Voor Harry Oenema (NLfood) Incident za 20-06-2026 Onderzoek 25-06-2026 Status Oorzaak vastgesteld · herstel gepland
Geen dataverlies Oorzaak bewezen met serverlogs Grote mandjes: herstel met voorrang uit backup

1Managementsamenvatting

In de ochtend van zaterdag 20 juni liep de nachtelijke artikel‑synchronisatie van de webshop veel langer dan normaal (bijna 4 uur in plaats van enkele minuten) en kwam pas rond 07:30 klaar — precies toen de eerste klanten de winkel openden. Tijdens dat proces waren artikelen tijdelijk onzichtbaar en leken winkelmandjes leeg.

Belangrijkste conclusie

Er is geen data verloren gegaan. De inhoud van de winkelmandjes is niet gewist. Voor het overgrote deel van de klanten herstelde de weergave zich vanzelf zodra de verwerking klaar was. Een beperkt aantal klanten met een groot, intensief gebruikt mandje vraagt om gericht handmatig herstel — dat pakken we met voorrang op (zie Herstel & planning).

2Wat er feitelijk gebeurde

Tijdlijn — zaterdag 20 juni

  • 03:45
    De nachtelijke artikel‑synchronisatie start (verwerkt ± 20.800 artikelen vanuit Profit). Normaal duurt dit ± 3,5 minuut.
  • 03:45 – 07:31
    Die nacht duurde de synchronisatie bijna 4 uur. Ook een tweede onderhoudstaak liep tegelijk en even traag — beide kropen vooruit doordat ze de database gelijktijdig belastten.
  • 06:59 – 07:31
    De afrondende opschoonstap zette de artikeltabel ± 32 minuten “op slot”. In deze periode kon de winkel artikelen tijdelijk niet ophalen → artikelen onzichtbaar, mandjes leken leeg.
  • zo 04:00
    Volgende verversing voltooid — artikelweergave weer normaal.
  • ma ochtend
    Winkelwagen-synchronisatie afgerond.

3Onderbouwde oorzaak

Twee samenlopende effecten

① De acute storing (zaterdagochtend)

Meerdere zware nachttaken stonden te dicht op elkaar gepland en belastten de database gelijktijdig. Daardoor liep de artikel‑synchronisatie 63× trager dan normaal en door tot in de ochtendspits. Tijdens de afsluitende opschoonstap was de artikeltabel kort vergrendeld, waardoor de winkel artikelen even niet kon tonen. Dit herstelde vanzelf.

② Het naijl-effect (grote mandjes)

Door de verstoorde verwerking kregen veel artikelen een nieuw intern volgnummer. Winkelmandjes die nog naar het oude nummer verwezen — en geen tweede, vaste artikelcode hadden opgeslagen — vinden hun artikel niet meer terug. Die mandjes herstellen niet vanzelf, maar zijn gericht te repareren.

Bewijs uit de serverlogs

MetingNormaal (19-06)Storing (20-06)
Duur artikel-synchronisatie3,5 min3 u 46 min
Verwerkte artikelen20.83320.831 (normaal — geen data-issue)
Duur opschoonstap (tabel-lock)± 1 sec± 32 min
Tweede nachttaak (gelijktijdig)2 min3 u 53 min

De server liep die nacht bovendien herhaaldelijk tegen een capaciteitslimiet voor gelijktijdige processen aan — dit stemmen we af met de hostingpartij (Qware).

4Impact

Omvang van het naijl-effect

0
verloren winkelmandjes (data intact)
± 30
klanten met mogelijk nog incompleet mandje
dagelijks
volledige backups beschikbaar voor reconstructie

Eén klant springt eruit

Eén klant heeft over ± 3 weken een zeer groot mandje opgebouwd (honderden artikelen, t.b.v. een containerbestelling). Juist dit mandje valt onder de groep die niet vanzelf herstelt, en een deel ervan bestaat uit oudere items zonder vaste artikelkoppeling. Wij behandelen dit met de hoogste prioriteit en reconstrueren waar nodig uit de backup van vóór de storing — zie de aanpak hieronder.

5Herstel & planning

Hoe en wanneer we de mandjes terugzetten

Onze intentie

We pakken het grote, intensief gebruikte mandje (containerbestelling) met de hoogste prioriteit op en zetten alles op alles om de inhoud terug te halen — bij voorkeur door reconstructie uit een backup van vóór de storing. Een deel van de oudere mandje-items kan een handmatige controle of, in het uiterste geval, opnieuw toevoegen vragen; we brengen per klant exact in kaart wat we terugzetten en wat eventueel aandacht nodig heeft.

1
Grote containerbestelling (± 3 weken werk)
Honderden artikelen · hoogste prioriteit · reconstructie uit backup
met spoed
2
Overige grote mandjes
Top van de betrokken accounts
aansluitend
3
Resterende betrokken mandjes
Per klant gecontroleerd
daarna

Werkwijze per mandje

  1. Backup van vóór de storing inzetten. We draaien dagelijks een volledige backup. Een backup van vóór 20 juni bevat de mandjes nog met de toen geldige artikelkoppelingen — dat is de meest betrouwbare bron voor reconstructie.
  2. Mandje reconstrueren. We zetten de inhoud terug en koppelen elk artikel aan zijn huidige nummer in de webshop.
  3. Per klant controleren. We verifiëren elk hersteld mandje en brengen in kaart welke artikelen terug zijn en welke eventueel aandacht nodig hebben.
  4. Terugkoppelen. Per klant bevestigen we wat is hersteld, transparant en volledig.

6Structurele preventie

Zodat dit niet terugkomt

  1. Nachttaken uit elkaar trekken. De zware synchronisatie- en opschoontaken krijgen verschillende tijdstippen en wachten netjes op elkaar, met ruime marge vóór openingstijd.
  2. Opschoonstap onschadelijk maken voor de winkel. Artikelen hoeven tijdens het bijwerken niet meer “op slot”, zodat winkel én mandjes altijd bereikbaar blijven — ook als een synchronisatie een keer langer duurt.
  3. Mandje koppelen aan de vaste artikelcode. Winkelmandjes leggen voortaan altijd de vaste artikelcode vast, zodat een nieuw intern volgnummer een mandje nooit meer kan breken.
  4. Capaciteit afstemmen met Qware. We bespreken de serverlimiet die werd geraakt en of die verhoogd kan worden.

Alle aanpassingen verlopen via onze normale test-en-uitrolprocedure: eerst testen, daarna live — en niet op vrijdag.

7Klantcommunicatie

Kant-en-klare tekst voor uw klanten (Engels)

Twee versies: een algemene boodschap, en een persoonlijke variant voor de zwaar getroffen klant met het grote mandje. Kies een tab en klik op Copy.

Customer message · English

Dear customer,

On the morning of Saturday 20 June, our webshop experienced a temporary disruption. A nightly product-synchronisation took much longer than usual and was still running when the shop opened, which caused some products to be temporarily invisible and made shopping carts appear empty.

We want to reassure you: no data has been lost. The contents of your shopping cart were never deleted. For most customers the cart was restored automatically once the synchronisation finished.

For a small number of customers, part of the cart may still appear incomplete. This is because some products received a new internal reference during the update. We are restoring these carts in a targeted way, and we keep daily backups, so nothing is lost.

We have identified the cause and are implementing structural improvements so that the nightly updates can no longer affect the shop during opening hours.

We apologise for any inconvenience and thank you for your understanding. If you notice anything unusual in your account or cart, please let us know and we will resolve it for you.

Kind regards,
NLfood

Tip: vul bij de persoonlijke versie de naam in en stem de termijn af op wat is toegezegd. Aanhef en ondertekening passen we graag aan.