Aktionen
Bug #92
offen[Bugsink] ErrorException: Warning: Undefined array key "excludeUids"
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/9c60b7bb-abd8-4dca-87c2-882deda254a7/event/last/
Typ: NEW issue
Projekt: www-verl-de
Bugsink Alert
ErrorException: Warning: Undefined array key "excludeUids"
Automatisch erstellt durch n8n
KI-Analyse:
Analyse des Fehlers: Undefined array key "excludeUids"¶
1. Ursache identifizieren¶
Der Fehler tritt auf, weil in einem PHP-Array auf den Schlüssel "excludeUids" zugegriffen wird, ohne vorher zu prüfen, ob dieser Schlüssel existiert.
-
Typischer Auslöser:
- Eine TYPO3-Extension oder ein benutzerdefinierter Code (z. B. in
index.phpoder einer Middleware) greift auf$array['excludeUids']zu, ohne sicherzustellen, dass der Schlüssel im Array vorhanden ist. - Der Fehler wird in PHP 8.x als
Warninggeworfen (in älteren PHP-Versionen wäre es einNoticegewesen).
- Eine TYPO3-Extension oder ein benutzerdefinierter Code (z. B. in
-
Konkrete Stelle:
Der Stacktrace zeigt, dass der Fehler in/public/index.php(Zeile 21) ausgelöst wird, vermutlich in einem Closure (anonyme Funktion), die an eine Middleware oder den TYPO3-Kern übergeben wird.- Die Middleware-Kette (
MiddlewareDispatcher) deutet darauf hin, dass der Fehler während der Request-Verarbeitung auftritt, möglicherweise in einer benutzerdefinierten Middleware oder einer TYPO3-Extension, die den Request manipuliert.
- Die Middleware-Kette (
2. Fix beschreiben (konkret)¶
Lösungsansätze:
Option 1: Existenz des Schlüssels prüfen (empfohlen)¶
// Vor dem Zugriff prüfen, ob der Schlüssel existiert
$excludeUids = $array['excludeUids'] ?? []; // Default-Wert (leeres Array) falls nicht vorhanden
-
Vorteile:
- Sauberer Code, der mit PHP 7.4+ kompatibel ist.
- Verhindert den Fehler, ohne die Logik zu ändern.
Option 2: isset() oder array_key_exists() verwenden¶
if (isset($array['excludeUids'])) {
$excludeUids = $array['excludeUids'];
} else {
$excludeUids = []; // Fallback
}
- Nachteil: Etwas ausführlicher, aber expliziter.
Option 3: Fehlerunterdrückung (nicht empfohlen!)¶
$excludeUids = @$array['excludeUids']; // @ unterdrückt den Fehler (schlechter Stil!)
- Nachteil: Versteckt nur das Symptom, führt zu unwartbarem Code.
Option 4: TYPO3-spezifische Lösung (falls in Extbase/Fluid)¶
Falls der Fehler in einer TYPO3-Extension auftritt (z. B. in einem Controller oder einer Middleware), sollte die Konfiguration überprüft werden:
// Beispiel: In einem Extbase-Controller
$settings = $this->configurationManager->getConfiguration(
\TYPO3\CMS\Extbase\Configuration\ConfigurationManagerInterface::CONFIGURATION_TYPE_SETTINGS
);
$excludeUids = $settings['excludeUids'] ?? [];
3. Betroffene TYPO3-Extension nennen¶
Der Stacktrace zeigt keine direkte Extension an, aber folgende Hinweise:
- Der Fehler stammt aus
/public/index.php(benutzerdefinierter Code) oder einer Middleware, die von einer Extension registriert wurde. -
Mögliche Kandidaten:
-
Benutzerdefinierte Middleware (z. B. in
ext_localconf.phpregistriert):$GLOBALS['TYPO3_CONF_VARS']['HTTP']['middlewares']['my_middleware'] = \Vendor\Extension\Middleware\MyMiddleware::class; - Eine Drittanbieter-Extension, die mit Arrays arbeitet (z. B. für SEO, Sitemaps, oder Datenbankabfragen).
- Ein Hook oder Event-Listener, der auf den Request zugreift.
-
Benutzerdefinierte Middleware (z. B. in
Empfohlene Suche:
- Durchsuche das Projekt nach:
-
excludeUids(z. B. mitgrep -r "excludeUids" .). -
Middlewareinext_localconf.phpoderConfiguration/RequestMiddlewares.php. - Hooks/Events in
ext_localconf.phpoderConfiguration/TCA/Overrides/.
-
4. Confidence (0-100%)¶
- 90%: Die Ursache ist klar (fehlender Array-Schlüssel), und der Fix ist trivial.
-
10% Unsicherheit:
- Die genaue Extension oder der Code-Kontext ist nicht eindeutig aus dem Stacktrace ersichtlich.
- Falls der Fehler in einer Middleware auftritt, könnte die Logik komplexer sein (z. B. Abhängigkeit von Request-Parametern).
Zusammenfassung¶
| Punkt | Details |
|---|---|
| Ursache | Zugriff auf $array['excludeUids'] ohne Existenzprüfung. |
| Fix |
??-Operator oder isset() verwenden (z. B. $excludeUids = $array['excludeUids'] ?? []). |
| Betroffene Ext. | Unbekannt (vermutlich benutzerdefinierte Middleware oder Hook). |
| Confidence | 90% |
Nächste Schritte:
- Suche nach
excludeUidsim Projekt. - Prüfe Middleware/Hooks in
ext_localconf.php. - Wende den Fix an und teste die Änderung.
Nichts anzuzeigen
Aktionen