Bug #156
offen[Bugsink] Exception: Call to a member function getOrganisation() on null
0%
Beschreibung
Bugsink: https://bugsink.cytrus.de/issues/issue/68a88f3c-a987-4f11-b400-78da2f0fca83/event/last/
Typ: NEW issue
Projekt: www-verl-de
Bugsink Alert
Exception: Call to a member function getOrganisation() on null
Automatisch erstellt durch n8n
KI-Analyse:
1. Ursache identifizieren¶
Der Fehler Call to a member function getOrganisation() on null entsteht, weil ein Objekt, auf das getOrganisation() aufgerufen wird, den Wert null hat.
Konkrete Analyse des Stack Traces:
- Der Fehler tritt an
/public/index.php:21innerhalb eines Closures (Zeile 17) auf — also bereits während des frühen Bootstrapping-Prozesses von TYPO3, bevor die normale TYPO3-Initialisierung abgeschlossen ist. - Der Request durchläuft die Middleware-Kette (
VerifyHostHeader→NormalizedParamsAttribute→ResponsePropagation), was darauf hindeutet, dass die Host-basierte Organisationsauflösung während der Request-Validierung fehlschlägt. -
VerifyHostHeader::process(Zeile 55) prüft den Host-Header der eingehenden Anfrage. Wenn der Host nicht einer konfigurierten Site/Organisation zugeordnet werden kann, gibt der Auflösernullzurück. - Das anschließende Aufrufen von
->getOrganisation()auf diesemnull-Wert verursacht den Fatal Error.
Root Cause: Eine benutzerdefinierte oder Extensions-basierte Host-to-Organisation-Auflösung in public/index.php (Zeile 17–21) liefert null zurück, wenn kein passender Organisations-Eintrag für die angefragte Domain gefunden wird. Es fehlt ein Null-Check vor dem Methodenaufruf.
2. Fix (konkret)¶
In /public/index.php (Zeile 17–21) muss ein Null-Check implementiert werden:
// VORHER (buggy):
$organisation = $organisationResolver->getOrganisation();
// ... weiter mit $organisation->...
// NACHHER (fixed):
$organisation = $organisationResolver->getOrganisation();
if ($organisation === null) {
// Entweder: 404 zurückgeben, auf Standard-Site weiterleiten oder Fehler loggen
http_response_code(404);
echo 'Organisation not found for host: ' . ($_SERVER['HTTP_HOST'] ?? 'unknown');
exit;
}
// Weiter mit $organisation->...
Zusätzlich prüfen:
- Die Site-Konfiguration (
config/sites.yamloder Extension-Tables) — ob die angefragte Domain korrekt einer Organisation zugeordnet ist. - Ob die datenbankbasierte Auflösung (z. B. ein Repository-Query) fehlschlägt, weil z. B. ein Datensatz fehlt oder die Query-Bedingungen nicht erfüllt sind.
- Im Error-Log nachprüfen, ob vor dem Fatal Error Warning-Messages auftauchen (z. B. „Site not found for host ...").
3. Betroffene TYPO3 Extension¶
Da die Methode getOrganisation() aufgerufen wird und die Auflösung über den Host-Header erfolgt, ist dies höchstwahrscheinlich eine Multi-Tenancy- oder Multi-Domain-Extension, die für die Organisation-zu-Domain-Zuordnung verantwortlich ist.
Am wahrscheinlichsten betroffen:
- Eine Custom Extension für Multi-Tenancy / Multi-Organisation (z. B.
sf_multi_domain,org_domain, oder eine projektspezifische Extension) - Oder eine System-Erweiterung, die
getOrganisation()im Rahmen der Site-Konfiguration bereitstellt
Die betroffene Extension kann exakt identifiziert werden durch:
- Suche im
typo3conf/ext/Verzeichnis nach der MethodegetOrganisation() - Analyse der Extbase-Repository-Klasse, die in
public/index.phpinjiziert wird - Prüfung der
ext_localconf.phpder verdächtigen Extensions nach Hooks in den Early-Bootstrapping-Prozess
4. Confidence¶
Confidence: 75%
- ✅ Hoch: Der Fehler ist eindeutig ein Null-Reference auf ein Objekt, das während des frühen Bootstraps (
public/index.php) aufgelöst wird - ✅ Hoch: Die Beteiligung von
VerifyHostHeaderdeutet auf eine hostbasierte Organisationsauflösung hin - ⚠️ Mittel: Die exakte Extension-Identifikation ist ohne Zugriff auf den Code-Stand nicht mit 100%iger Sicherheit möglich
- ⚠️ Mittel: Der genaue Fix könnte je nach Implementierung in
public/index.phpvariieren
Empfehlung: grep -r "getOrganisation" typo3conf/ext/ ausführen, um die betroffene Extension exakt zu lokalisieren, und dann den Null-Check wie oben beschrieben implementieren.
Nichts anzuzeigen