Seite 1 von 1

Fehlermeldung bei Wiederherstellung einer Blockung

Verfasst: Donnerstag 2. Juli 2026, 10:32
von petsch
Hallo,

wir haben versucht unter Oberstufe -> Kursplanung eine Blockung wiederherzustellen, was mit folgender Fehlermeldung endete:

"Error: Fetch failed for GET: /db/svwsdb/gost/blockungen/2027/3/restore",
  "    at ApiServer.getTextBased (https://***/assets/src2.js:7642:28)",
  "    at async ApiServer.restauriereGostBlockung (https://***/assets/src2.js:83534:16)",
  "    at async https://***/assets/RouteManager.js:8651:18",
  "    at async Proxy.<anonymous> (https://***/assets/RouteManager.js:630:12)",
  "    at async activate_recovery (https://***/assets/SGostKursplanungAuswahl.js:1039:4)"

Version ist 1.3.3 Schemarevision 70

Das hört sich nach inkonsistenten Daten an. Was ist die beste Vorgehensweise, um das Problem zu lösen?

VG
Peter

Re: Fehlermeldung bei Wiederherstellung einer Blockung

Verfasst: Donnerstag 2. Juli 2026, 13:04
von A. Schüller
Hat sich denn etwas an blockungsrelevanten Daten geändert?
z.B. "Fach der Oberstufe" bei einem Fach deaktiviert oder ähnliches?

Re: Fehlermeldung bei Wiederherstellung einer Blockung

Verfasst: Donnerstag 2. Juli 2026, 17:13
von petsch
so genau konnte mir das keiner sagen, aber wenn man einen Kurs-Import macht kommt die Fehlermeldung, dass ein Fach im System nicht existieren würde. In Kurs kann man die Fehlerhafte Zeile aber nicht löschen.

Re: Fehlermeldung bei Wiederherstellung einer Blockung

Verfasst: Donnerstag 2. Juli 2026, 18:36
von Hauke Hayen
Ich verstehe nicht ganz:
Versuchen eine Kurs42-Blockung zu importieren über den Datenaustausch
oder
versuchen Sie aus den persistierten Leistungs- und Kursdaten (Kurse müssen dafür eine Schienenzuordnung haben) im SVWS eine Blockung wiederherzustellen (danach sieht die Fehlermeldung aus)?

Ach ja: Die komplette Fehlermeldung (ggf. als txt-Datei) wäre hilfreich. I.d. Regel gibt es eine Stelle die mit dem Wort "Fehler" beginnt, ab da die nächsten Zeilen könnten auch reichen.

Re: Fehlermeldung bei Wiederherstellung einer Blockung

Verfasst: Donnerstag 2. Juli 2026, 19:43
von petsch
Wir haben nach den Halbjahreswechsel auf SVWS umgestellt. Also wurde das aktuelle Halbjahr noch "klassisch" geplant. Um das nächste Halbjahr zu planen, wollten wir die aktuelle Blockung übernehmen. Zwei Optionen haben wir versucht.
Also haben wir quasi beides gemacht:
1. der Versuch einer Wiederherstellung mit der folgenden Fehlermeldung im Client:
```json
{
"env": {
"client": "WebClient",
"mode": "stable",
"version": "1.3.3",
"commit": "7d1973b80ead5d5932edd3e0bcbe049fa7ec3fbb",
"userAgent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/149.0.0.0 Safari/537.36 Edg/149.0.0.0"
},
"error": {
"id": 5,
"name": "API-Fehler: Dieser Fehler wird durch eine fehlerhafte Kommunikation mit dem Server verursacht. In der Regel bedeutet das, dass die verschickten Daten nicht den Vorgaben entsprechen.",
"message": "Fetch failed for GET: /db/svwsdb/gost/blockungen/2027/3/restore - Status: 500",
"stack": [
"Error: Fetch failed for GET: /db/svwsdb/gost/blockungen/2027/3/restore",
" at ApiServer.getTextBased (https://***/assets/src2.js:7642:28)",
" at async ApiServer.restauriereGostBlockung (https://***/assets/src2.js:83534:16)",
" at async https://***/assets/RouteManager.js:8651:18",
" at async Proxy.<anonymous> (https://***/assets/RouteManager.js:630:12)",
" at async activate_recovery (https://***/assets/SGostKursplanungAuswahl.js:1039:4)"
],
"log": null
}
}

2. Als Workaround einen Kurs-Import versucht, der aber Aufgrund eines fehlenden Faches mit der ID 114 im System auch fehlschlägt. Es gibt auch keine Möglichkeit diese Zeile in Kurs zu löschen.

In den log-Dateien ist nur etwas im request.log zu finden, aber da steht auch nur der 500 von oben.

Re: Fehlermeldung bei Wiederherstellung einer Blockung

Verfasst: Freitag 3. Juli 2026, 12:38
von petsch
Ok Problem gefunden!
Es gibt einen Bug, der den 500er auslöst, wenn eine 0 (Null) in der Kurzbezeichnung ist.

de.svws_nrw.core.exceptions.DeveloperNotificationException: Kurs.nummer 0 zu klein!
at de.svws_nrw.core.utils.gost.GostBlockungsdatenManager.kursAddListe(GostBlockungsdatenManager.java:1047)
at de.svws_nrw.data.gost.DataGostBlockungsdaten.getBlockungsdatenManagerFromDB(DataGostBlockungsdaten.java:208)
at de.svws_nrw.data.gost.DataGostBlockungsdaten.restore(DataGostBlockungsdaten.java:1318)

Das Problem: split("\\D+") extrahiert die letzte Ziffernfolge im gesamten String, nicht nur eine explizit angehängte Nummerierung. Bei einem Kurs mit KurzBez = "Q1_S0XX" (Fachkürzel „S0" für Spanisch ab EF, gefolgt von Lehrerkürzel) wird die 0 aus „S0" fälschlich als Kursnummer interpretiert. Da GostBlockungsdatenManager.kursAddListe nur Kursnummern ≥ 1 akzeptiert, crasht der Restore mit DeveloperNotificationException.