Benutzerdefinierte Blöcke in Drupal 8 sind plötzlich kaputt und lassen sich nicht mehr platzieren

Benutzerdefinierte Blöcke in Drupal 8 sind plötzlich kaputt und lassen sich nicht mehr platzieren

Gestern Abend erreichte uns ein Hilferuf eines Kunden, der plötzlich keine Custom Blocks - benutzerdefinierten Blöcke - mehr platzieren konnte. Im Ereignis-Log erschien eine Fehlermeldung. 

Die Fehlermeldung, überschrieben mit Warning: Invalid argument supplied for foreach() in Drupal\Core\Render\Element\Checkboxes::valueCallback() (Zeile 100 in /pfadzurinstallation/core/lib/Drupal/Core/Render/Element/Checkboxes.php) und viiiieeel mehr Text drunter, ließ sich erst einmal mit nichts auf der Seite so richtig in Verbindung bringen.

Oft sitzt der Bug vor dem Bildschirm und nicht im System, aber diesmal ließ sich der Fehler klar reproduzieren. Und schlimmer noch: Beim Versuch, vorhandene Blöcke zu ersetzen, waren diese plötzlich auch verschwunden. Die Seite wurde also Stück für Stück leerer. 

Don't panic ... WAAAAAH!

Tante Google liefert eine überschaubare Anzahl Suchergebnisse zu dem Code-Schnipsel, meist bei den Issues auf der Drupal-Seite. Alles nicht zielführend. Zwischendurch dann immer auch sinnhafte Blogbeiträge, in denen jemand beschreibt, dass ein paar Zeilen Code geholfen hätte. Den Code-Schnipsel gibt es netterweise dazu, aber in welcher Datei der versenkt worden war, stand leider nirgends. Ich hasse solche Posts! Liebe Bloger:innen und Beitragsschreiber:innen in Foren oder Support-Boards, bitte gewöhnt es euch doch an, in ganzen Sätzen zu schreiben und konkret zu sagen, was ihr wo gemacht habt! Ach Gott, Entschuldigung, es waren wirklich aufregende Stunden, die wirken gerade noch nach ...

Kommissar Zufall findet den Bösewicht

Nach langem Googeln mit mehreren Varianten der Fehlermeldung fand sich dann eine Spur: Jemand brachte das von uns erlebte Verhalten in Zusammenhang mit dem Modul Context. Und zwar mit der von uns verwendeten Version 4.0 (context 8.x-4.0). Diese Version existiert erst seit dem 26.07.2021, wir hatten am 28.07. ein Update gemacht, weil wir davor noch nur mit einer Beta-Version gearbeitet hatten. Dass schon am 05.08.2021 die Version 4.1 herausgebracht wurde, hatte wohl so seine Gründe. Wir haben, unter großem Trommelwirbel, schnell die 4.1 eingespielt und: Tusch!, alle Blöcke sind wieder da, alles funktioniert, nichts ist kaputt, das Leben ist schön!

Wir hoffen, dieser Blogbeitrag erspart anderen Entwickler:innen die stundenlange Suche, die wir hinter uns haben ...