Projekt

Allgemein

Profil

Aktionen

Bug #46

offen

[Bugsink] TYPO3\CMS\Extbase\Property\Exception\TargetNotFoundException: Object of type Qb\DvnlpIntranet\Domain\Model\Member with identity "6788" not found.

Von Bug Sink vor 9 Tagen hinzugefügt.

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

0%

Geschätzter Aufwand:

Beschreibung

Bugsink: https://bugsink.cytrus.de/issues/issue/161edbab-0049-4af4-9b8c-8cd92022cec1/event/last/

Typ: NEW issue

Projekt: www-dvnlp-de

Bugsink Alert

TYPO3\CMS\Extbase\Property\Exception\TargetNotFoundException: Object of type Qb\DvnlpIntranet\Domain\Model\Member with identity "6788" not found.


Automatisch erstellt durch n8n

KI-Analyse:

Hier ist die präzise Analyse des Fehlers als Senior TYPO3/PHP Entwickler:


1. Ursache identifizieren

Fehler:
TYPO3\CMS\Extbase\Property\Exception\TargetNotFoundException
→ Ein Objekt vom Typ Qb\DvnlpIntranet\Domain\Model\Member mit der UID 6788 konnte nicht in der Datenbank gefunden werden.

Kontext:

  • Der Fehler tritt im Frontend auf (/vendor/typo3/cms-frontend/).
  • Extbase versucht, ein Member-Objekt zu laden (z. B. über ein Repository oder eine Relation), aber das Objekt existiert nicht (mehr) in der Datenbank.
  • Typische Szenarien:
    • Das Objekt wurde gelöscht, aber Referenzen darauf existieren noch (z. B. in einer Relationstabelle oder einem Cache).
    • Die UID 6788 wurde manuell geändert oder ist ungültig.
    • Ein Cache-Problem: Das Objekt wurde gelöscht, aber der Extbase-Identity-Map-Cache enthält noch veraltete Einträge.
    • Ein Plugin/Controller versucht, das Objekt zu laden, ohne vorher zu prüfen, ob es existiert.

2. Fix beschreiben (konkret)

A) Sofortmaßnahme (kurzfristig)

  1. Prüfen, ob das Objekt existiert:

    SELECT * FROM tx_dvnlpintranet_domain_model_member WHERE uid = 6788;
    
    • Falls nicht vorhanden: Prüfen, ob es unter einer anderen UID existiert (z. B. durch Umbenennung).
  2. Cache leeren:

    typo3 cache:flush
    
    • Oder im TYPO3-Backend: Maintenance → Flush TYPO3 Cache.
  3. Referenzen bereinigen:

    • Prüfen, wo die UID 6788 noch referenziert wird (z. B. in sys_file_reference, tt_content, oder anderen Tabellen).
    • Beispielabfrage für tt_content:
      SELECT * FROM tt_content WHERE bodytext LIKE '%6788%';
      
  4. Fallback im Code implementieren:

    • Im betroffenen Repository oder Controller prüfen, ob das Objekt existiert, bevor es verwendet wird:
      $member = $this->memberRepository->findByUid(6788);
      if (!$member) {
          // Fallback: z. B. Default-Objekt laden oder Fehlermeldung ausgeben
          throw new \TYPO3\CMS\Extbase\Mvc\Exception\StopActionException('Member not found', 1623456789);
      }
      

B) Langfristige Lösung

  1. Soft-Delete implementieren (falls nicht vorhanden):

    • In der Member-Klasse deleted-Feld nutzen (TYPO3-Standard):
      /**
       * @var bool
       */
      protected $deleted = false;
      
    • Im Repository:
      $query->getQuerySettings()->setIgnoreEnableFields(false);
      
  2. Referenz-Integrität sicherstellen:

    • Foreign Keys in der Datenbank prüfen (z. B. ON DELETE CASCADE oder ON DELETE SET NULL).
    • Extbase-Relationen mit cascade="remove" oder lazy="false" konfigurieren (falls nötig).
  3. Logging aktivieren:

    • Im ext_localconf.php der Extension:
      $GLOBALS['TYPO3_CONF_VARS']['LOG']['Qb']['DvnlpIntranet']['writerConfiguration'] = [
          \TYPO3\CMS\Core\Log\LogLevel::ERROR => [
              \TYPO3\CMS\Core\Log\Writer\FileWriter::class => [
                  'logFile' => 'typo3temp/var/logs/dvnlp_intranet.log',
              ],
          ],
      ];
      
    • Dann im Code:
      $this->logger->error('Member with UID 6788 not found');
      
  4. TYPO3-Upgrade prüfen:

    • Falls die Extension mit einer älteren TYPO3-Version läuft, könnte ein Bug in Extbase vorliegen (z. B. Issue #92456).

3. Betroffene TYPO3 Extension

  • Extension-Key: dvnlp_intranet
  • Namespace: Qb\DvnlpIntranet
  • Domain-Modell: Member (tx_dvnlpintranet_domain_model_member)
  • Likely betroffene Komponenten:
    • MemberRepository (z. B. findByUid(6788))
    • Controller, die das Member-Objekt verwenden (z. B. MemberController)
    • Plugins oder Content-Elemente, die auf Member verweisen.

4. Confidence

  • 95% (hohe Sicherheit, da der Fehler klar auf ein nicht gefundenes Objekt hindeutet und die Ursachen typisch sind).
  • Unsicherheitsfaktoren:
    • Ob das Objekt absichtlich gelöscht wurde oder ein Bug vorliegt.
    • Ob Caching (z. B. Redis) eine Rolle spielt (selten, aber möglich).

Zusammenfassung der nächsten Schritte

  1. Datenbank prüfen (tx_dvnlpintranet_domain_model_member für UID 6788).
  2. Cache leeren (TYPO3 + Browser).
  3. Code anpassen (Fallback für nicht gefundene Objekte).
  4. Logging aktivieren, um ähnliche Fehler zukünftig zu tracken.
  5. Dokumentation der Extension prüfen (z. B. ob Member-Objekte manuell gelöscht werden dürfen).

Nichts anzuzeigen

Aktionen

Auch abrufbar als: Atom PDF