Projekt

Allgemein

Profil

Aktionen

Bug #156

offen

[Bugsink] Exception: Call to a member function getOrganisation() on null

Von Bug Sink vor etwa 2 Monaten hinzugefügt.

Status:
Neu
Priorität:
wichtig
Zugewiesen an:
-
Beginn:
04.09.2026
Abgabedatum:
% erledigt:

0%

Geschätzter Aufwand:

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:21 innerhalb 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öser null zurück.
  • Das anschließende Aufrufen von ->getOrganisation() auf diesem null-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.yaml oder 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 Methode getOrganisation()
  • Analyse der Extbase-Repository-Klasse, die in public/index.php injiziert wird
  • Prüfung der ext_localconf.php der 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 VerifyHostHeader deutet 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.php variieren

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

Aktionen

Auch abrufbar als: Atom PDF