Projekt

Allgemein

Profil

Aktionen

Bug #89

offen

[Bugsink] ErrorException: Warning: Undefined array key "middlewareAction"

Von Bug Sink vor 23 Tagen hinzugefügt.

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

0%

Geschätzter Aufwand:

Beschreibung

Bugsink: https://bugsink.cytrus.de/issues/issue/77e6dcdd-839c-432f-b542-e41887c80ded/event/last/

Typ: NEW issue

Projekt: www-verl-de

Bugsink Alert

ErrorException: Warning: Undefined array key "middlewareAction"


Automatisch erstellt durch n8n

KI-Analyse:

Analyse des Fehlers: "Undefined array key 'middlewareAction'"


1. Ursache identifizieren

Der Fehler tritt auf, weil in einem Middleware-Stack (vermutlich in einer benutzerdefinierten oder Drittanbieter-Extension) versucht wird, auf den Array-Key "middlewareAction" zuzugreifen, der nicht existiert.

Konkrete Auslöser:

  • Der Fehler entsteht in der Middleware-Verarbeitungskette von TYPO3 (ab MiddlewareDispatcher.php).
  • Die Stack-Trace zeigt, dass der Fehler in /public/index.php beginnt und durch die Middleware-Verarbeitung propagiert wird.
  • Wahrscheinliche Ursache:
    • Eine benutzerdefinierte Middleware (oder eine Extension) erwartet einen Request-Parameter oder ein Attribut namens "middlewareAction", das jedoch nicht gesetzt ist.
    • Alternativ könnte ein falscher Zugriff auf $_GET, $_POST oder $request->getParsedBody() vorliegen, ohne vorherige Prüfung mit isset() oder array_key_exists().

Betroffene Code-Stelle:

  • Der Fehler wird in einer Middleware ausgelöst, die vor den Standard-Middlewares von TYPO3 (wie VerifyHostHeader oder NormalizedParamsAttribute) ausgeführt wird.
  • Da der Fehler in /public/index.php beginnt, handelt es sich vermutlich um eine frühe Middleware (z. B. in einer Extension wie ext_localconf.php registriert).

2. Fix beschreiben (konkret)

Lösungsansätze:

Option 1: Prüfung des Array-Keys vor Zugriff (empfohlen)

Falls der Key "middlewareAction" in einer Middleware erwartet wird, muss vor dem Zugriff geprüft werden, ob er existiert:

// Vorher (fehlerhaft):
$action = $request->getParsedBody()['middlewareAction'];

// Nachher (korrigiert):
$action = $request->getParsedBody()['middlewareAction'] ?? 'defaultAction';

oder mit expliziter Prüfung:

if (!isset($request->getParsedBody()['middlewareAction'])) {
    throw new \RuntimeException('Missing middlewareAction in request body');
}
$action = $request->getParsedBody()['middlewareAction'];
Option 2: Middleware korrigieren oder entfernen
  • Falls die Middleware nicht benötigt wird, kann sie aus der Konfiguration entfernt werden (z. B. in ext_localconf.php oder Configuration/RequestMiddlewares.php).
  • Falls sie benötigt wird, muss der Entwickler der Middleware den Fehler beheben (siehe Option 1).
Option 3: Request-Attribute prüfen (falls Middleware TYPO3-spezifisch ist)

Falls die Middleware auf TYPO3-Request-Attribute zugreift (z. B. aus NormalizedParams), sollte stattdessen getAttribute() verwendet werden:

$middlewareAction = $request->getAttribute('middlewareAction');
if ($middlewareAction === null) {
    throw new \RuntimeException('middlewareAction attribute missing');
}

3. Betroffene TYPO3 Extension nennen

Der Fehler stammt nicht aus dem TYPO3-Core, sondern aus einer benutzerdefinierten oder Drittanbieter-Extension.

Mögliche Kandidaten:

  1. Eine selbst entwickelte Extension (z. B. in typo3conf/ext/), die eine Middleware registriert.
  2. Eine Drittanbieter-Extension, die:
    • Eine Middleware implementiert (z. B. für API-Routing, Authentifizierung oder Caching).
    • Den Key "middlewareAction" erwartet (z. B. für REST-APIs oder Frontend-Routing).

Wie die betroffene Extension finden?

  • Suche nach Middleware-Registrierungen in:
    • typo3conf/ext/*/ext_localconf.php
    • typo3conf/ext/*/Configuration/RequestMiddlewares.php
  • Suche nach "middlewareAction" in:
    grep -r "middlewareAction" typo3conf/ext/
    
  • Debugging-Tipp:
    • In /public/index.php vor dem run()-Aufruf eine Debug-Ausgabe einbauen:
      $request = $request->withAttribute('debug_middleware', true);
      
    • Dann in der Middleware prüfen:
      if ($request->getAttribute('debug_middleware')) {
          debug_print_backtrace();
      }
      

4. Confidence (0-100%)

  • 90% – Die Analyse basiert auf der Stack-Trace und typischen TYPO3-Middleware-Fehlern.
  • Unsicherheit (10%):
    • Die exakte Middleware ist nicht direkt aus der Stack-Trace ersichtlich (nur der Aufrufpfad).
    • Falls der Fehler in einer obfuskierten oder komplexen Extension auftritt, könnte die Ursache anders sein.

Zusammenfassung der nächsten Schritte

  1. Extension identifizieren, die die Middleware registriert (Suche nach RequestMiddlewares.php).
  2. Code prüfen, wo auf "middlewareAction" zugegriffen wird (mit grep oder IDE-Suche).
  3. Fix anwenden (Null-Coalescing-Operator, isset() oder Request-Attribute).
  4. Testen, ob der Fehler behoben ist.

Falls du die betroffene Extension nennst, kann ich eine genauere Code-Analyse liefern!

Nichts anzuzeigen

Aktionen

Auch abrufbar als: Atom PDF