Projekt

Allgemein

Profil

Aktionen

Bug #385

offen

[Bugsink] TypeError: Cannot assign null to property In2code\Powermail\Domain\Model\Field::$placeholderRepeat of type string

Von Bug Sink vor 17 Tagen hinzugefügt.

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

0%

Geschätzter Aufwand:

Beschreibung

Bugsink: https://bugsink.cytrus.de/issues/issue/4a625a6e-9fd7-4e94-8cd8-bc5ae957b1a2/event/last/

Typ: NEW issue

Projekt: www-verl-de

Bugsink Alert

TypeError: Cannot assign null to property In2code\Powermail\Domain\Model\Field::$placeholderRepeat of type string


Automatisch erstellt durch n8n

KI-Analyse:

1. Ursache

Der Fehler kommt nicht aus dem TYPO3 Core, sondern aus der Extension in2code/powermail.

Root Cause

In der Powermail-Klasse:

In2code\Powermail\Domain\Model\Field

ist eine Property vom Typ string definiert, z. B. ungefähr so:

protected string $placeholderRepeat = '';

Irgendwann beim Laden eines Powermail-Fields wird dieser Property null zugewiesen:

$field->placeholderRepeat = null;

oder über einen Setter:

$field->setPlaceholderRepeat(null);

Dadurch kommt in PHP 7.4+/8.x zu:

TypeError: Cannot assign null to property
In2code\Powermail\Domain\Model\Field::$placeholderRepeat of type string

Typischer Trigger

Am wahrscheinlichsten liegt ein Datenproblem vor:

  • Powermail liest Feld-Records aus der Datenbank.
  • In der Datenbank ist placeholder_repeat für mindestens ein Feld NULL.
  • Das Modell erwartet aber einen string, z. B. '', nicht null.

Bei Powermail 4/5 ist die relevante Tabelle in der Regel:

in2code_powermail_field

mit der Spalte:

placeholder_repeat

Es kann auch ein alter Eintrag nach einem Update, einem Import oder einer manuellen DB-Änderung betroffen sein.


2. Fix

Option A: Datenreparatur – empfohlen als sofortige Lösung

Führe diese SQL-Anweisung aus:

UPDATE in2code_powermail_field
SET placeholder_repeat = ''
WHERE placeholder_repeat IS NULL;

Optional zusätzlich die Spalte sauber absichern:

ALTER TABLE in2code_powermail_field
MODIFY placeholder_repeat VARCHAR(255) NOT NULL DEFAULT '';

Das verhindert, dass null wieder aus der Datenbank geladen wird.

Achtung: Je nach Powermail-Version kann die genaue Tabelle/später auch anders heißen.
In Powermail 4/5 ist aber sehr wahrscheinlich in2code_powermail_field korrekt.


Option B: Code-Patch in der Extension – defensiv

Falls du den Fehler auch auf Codeebene verhindern möchtest, patche:

vendor/in2code/powermail/Classes/Domain/Model/Field.php

Anpassung der Property:

protected ?string $placeholderRepeat = '';

Und sicherstellen, dass der Setter null normalisiert:

public function setPlaceholderRepeat(?string $placeholderRepeat): void
{
    $this->placeholderRepeat = $placeholderRepeat ?? '';
}

Getter auf string normalisieren:

public function getPlaceholderRepeat(): string
{
    return $this->placeholderRepeat ?? '';
}

Das verhindert den TypeError, falls noch null zugewiesen wird.

Warum direkt die Property nullable machen?

Wenn Extbase oder ein anderer Mapper die Property direkt schreibt, z. B.:

$field->placeholderRepeat = $dbValue;

dann hilft nur eine nullable Property:

protected ?string $placeholderRepeat = '';

Der Setter allein würde in diesem Fall nicht aufgerufen.


3. Betroffene TYPO3 Extension

in2code/powermail

bzw. im Filesystem:

vendor/in2code/powermail

Der Fehler liegt nicht in:

typo3/cms-core

Die gezeigten Frames sind nur der Core-Bootstrap, weil der Error während des Requests nach oben durchgeproppt ist.


4. Confidence

90 %

Begründung:

  • Die Fehlermeldung benennt exakt die Powermail-Property.
  • Cannot assign null to property ... of type string ist ein typisches Problem durch nicht-normalisierte NULL-Werte aus DB/Mapping.
  • Der Fix ist klar: DB-Repair + defensive Normalisierung in In2code\Powermail\Domain\Model\Field.

Nichts anzuzeigen

Aktionen

Auch abrufbar als: Atom PDF