Projekt

Allgemein

Profil

Aktionen

Bug #299

offen

[Bugsink] Exception: Cannot unset string offsets

Von Bug Sink vor 28 Tagen hinzugefügt.

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

0%

Geschätzter Aufwand:

Beschreibung

Bugsink: https://bugsink.cytrus.de/issues/issue/1dca5b43-cd25-4a8d-aca6-2d5762d7ffd6/event/last/

Typ: NEW issue

Projekt: www-fuchsfelge-com

Bugsink Alert

Exception: Cannot unset string offsets


Automatisch erstellt durch n8n

KI-Analyse:

1. Ursache identifizieren

Inkompatibilität: TYPO3 Core Version <-> PHP Version

Der Fehler Error: Cannot unset string offsets tritt auf, weil TYPO3 Core Code (Vendor-Dateien) auf einem PHP 8.1+ läuft, der Code aber für PHP 8.0 oder älter geschrieben wurde.

In PHP 8.1 wurde das Verhalten von unset() auf String-Offsets geändert: Es wirft nun einen Error (fatal), statt nur eine Deprecation-Warnung zu werfen oder stillschweigend zu scheitern.

Der Stacktrace zeigt exakt die Middleware-Kette beim Bootstrapping (index.php -> AbstractApplication -> MiddlewareDispatcher -> VerifyHostHeader / NormalizedParamsAttribute). In diesen Klassen (VerifyHostHeader.php:55, NormalizedParamsAttribute.php:44) wird in älteren TYPO3-Versionen (v11.5.x < 11.5.27 / v12.0.x < 12.4.0) auf Superglobals ($_SERVER) oder Request-Attribute zugegriffen, die an bestimmten Stellen Strings statt Arrays enthalten, und anschließend versucht, Keys davon zu unsetten.

Typische Code-Stelle in NormalizedParamsAttribute (vereinfacht):

// Alt (Problem): $serverParams ist evtl. ein String (z.B. leerer String oder 'cli')
unset($serverParams['HTTP_HOST']); // Crash in PHP 8.1+
// Fix im Core: Typ-Prüfung vor unset
if (is_array($serverParams)) {
    unset($serverParams['HTTP_HOST']);
}

2. Fix beschreiben (konkret)

Primärer Fix (Pflicht): TYPO3 Core auf patch-kompatible Version aktualisieren.

Kein Hotfix in vendor/ (wird bei composer install überschrieben), keine Extension-Anpassung nötig.

Aktuelle Major Version Minimale Patch-Version für PHP 8.1+ Empfohlene Ziel-Version
v11 LTS 11.5.27 (erster PHP 8.1 Support) 11.5.36+ (aktuellster Security/Support)
v12 LTS 12.4.0 (PHP 8.1 Requirement) 12.4.18+ / 13.x
v10 / älter Kein Support Upgrade auf v11/v12 zwingend

Schritte:

  1. composer require typo3/cms-core:"^11.5.27 || ^12.4" (entsprechend deiner Major-Version)
  2. composer update typo3/cms-core --with-all-dependencies
  3. Datenbank-Updates ausführen (typo3/sysext/core/bin/typo3 database:updateschema / Install Tool)
  4. Caches leeren (typo3/sysext/core/bin/typo3 cache:flush)

Workaround (nur temporär, falls Update blockiert):
PHP-Version auf 8.0 downgraden (EOL seit Nov 2023, nicht empfohlen).


3. Betroffene TYPO3 Extension nennen

typo3/cms-core (TYPO3 CMS Core)

Keine Dritt-Extension, kein Sitepackage, keine eigene Extension. Der Fehler liegt im Core-Kernel (HTTP Middleware Stack).


4. Confidence (0-100%)

99%

Begründung:

  • Fehlermeldung (Cannot unset string offsets) ist das Leit-Symptom für PHP 8.1 Inkompatibilität in Legacy-Codebases.
  • Stacktrace zeigt ausschließlich Core-Klassen (vendor/typo3/cms-core/...), keine Custom-Code-Frames.
  • Betroffene Klassen (VerifyHostHeader, NormalizedParamsAttribute) waren bekannte Hotspots für genau diesen Fix in den Changelogs von v11.5.27 / v12.4.0.
  • Der Fehler tritt sofort beim Bootstrap auf (Request Handling), bevor eigene Extensions geladen werden.

Nichts anzuzeigen

Aktionen

Auch abrufbar als: Atom PDF