Skip to content

Auswahl des Aufgabenblatts im Testblock kann nicht gespeichert werden (PHP 8.1)

Berichtet von der HAWK, betrifft aber alle Installationen mit PHP >= 8.1:

Beim Anlegen eines Testblocks in der Courseware kann zwar ein Aufgabenblatt ausgewählt werden, es gibt beim Speichern aber den Fehler:

PATCH https://studip-test.uni-osnabrueck.de/jsonapi.php/v1/courseware-blocks/<id>

status	"422"
title	"Unprocesssable Entity"
detail	"Invalid payload for this `block-type`."

Ursache ist eine Änderung in PDO in PHP 8.1, die grundsätzlich auch an anderen Stellen in Stud.IP Probleme machen kann.

Konkret kommt die ausgelesene ID nun als int statt als string aus PDO, wird so an Vue weitergegeben und in die Payload des Blocks eingefügt. Das Schema für die Payload legt als Typ aber string fest, weil die ID bis PHP 8.0 auch als String ausgelesen wurde. Mit PHP 8.1 gibt es aufgrund des anderen Typs dann einen Fehler bei der Validierung in der JSON-API.

To upload designs, you'll need to enable LFS and have an admin enable hashed storage. More information