Projekt

Allgemein

Profil

Aktionen

Bug #43

offen

[Bugsink] TYPO3\CMS\Extbase\Property\Exception\TargetNotFoundException: Object of type Qb\DvnlpIntranet\Domain\Model\Member with identity "5338" 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/50a214ae-730d-45bf-8b28-b2f5df980929/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 "5338" not found.


Automatisch erstellt durch n8n

KI-Analyse:

Analyse des Fehlers: TargetNotFoundException in TYPO3 Extbase


1. Ursache identifizieren

Die TargetNotFoundException wird von Extbase ausgelöst, wenn ein Domain-Objekt (hier: Qb\DvnlpIntranet\Domain\Model\Member) mit einer bestimmten UID (5338) nicht in der Datenbank gefunden wird.
Dies passiert typischerweise in folgenden Szenarien:

  • Das Objekt wurde gelöscht, aber Referenzen darauf existieren noch (z. B. in:
    • Frontend-Plugins (z. B. ein Member-Listing mit veralteten UIDs)
    • Backend-Records (z. B. eine Relation in einem anderen Modell)
    • Caches (z. B. veraltete Extbase-Object-Caches)
  • Die UID ist falsch (z. B. durch manuelle Eingabe oder fehlerhafte API-Aufrufe).
  • Berechtigungsproblem: Der aktuelle User hat keine Leserechte auf das Objekt.
  • Fehlerhafte Repository-Logik: Das Repository sucht nach einem Objekt, das nicht existiert (z. B. durch falsche findByUid()-Aufrufe).

Konkreter Auslöser im Stacktrace:
Der Fehler tritt während der Frontend-Anfrage auf (siehe /vendor/typo3/cms-frontend/...), vermutlich in einem Extbase-Plugin der Extension dvnlp_intranet, das versucht, ein Member-Objekt mit UID 5338 zu laden.


2. Fix beschreiben (konkret)

Sofortmaßnahmen (Quick Fix)
  1. Prüfen, ob das Objekt existiert:

    SELECT * FROM tx_dvnlpintranet_domain_model_member WHERE uid = 5338;
    
    • Falls nicht vorhanden: Referenzen bereinigen (siehe unten).
    • Falls vorhanden: Berechtigungen prüfen (z. B. deleted=0, hidden=0).
  2. Referenzen auf das Objekt finden (z. B. in TCA-Relationen):

    -- Beispiel: Suche nach allen Records, die auf Member 5338 verweisen
    SELECT tablename, fieldname, uid
    FROM sys_refindex
    WHERE ref_table = 'tx_dvnlpintranet_domain_model_member'
      AND ref_uid = 5338;
    
    • Die gefundenen Records manuell korrigieren oder löschen.
  3. Cache leeren:

    typo3 cache:flush
    

    oder im Backend: Maintenance → Flush TYPO3 Cache.

Langfristige Lösung (Code-Anpassung)
  • Fehlerbehandlung im Repository (z. B. MemberRepository.php):

    public function findByUid($uid) {
        $query = $this->createQuery();
        $query->getQuerySettings()->setIgnoreEnableFields(true); // Falls hidden/deleted ignoriert werden soll
        $member = $query->matching($query->equals('uid', $uid))->execute()->getFirst();
    
        if (!$member) {
            throw new \TYPO3\CMS\Extbase\Persistence\Exception\IllegalObjectTypeException(
                'Member with UID ' . $uid . ' not found.',
                1623456789
            );
        }
        return $member;
    }
    
    • Alternative: Im Controller prüfen, ob das Objekt existiert, bevor es verwendet wird:
      $member = $this->memberRepository->findByUid($uid);
      if (!$member) {
          $this->redirect('list'); // oder 404-Seite anzeigen
      }
      
  • Frontend-Plugin anpassen:
    Falls das Plugin UIDs aus dem Frontend entgegennimmt (z. B. über GET/POST), validieren:

    $uid = (int)$this->request->getArgument('memberUid');
    if ($uid <= 0) {
        throw new \InvalidArgumentException('Invalid UID', 1623456790);
    }
    
  • TYPO3-Konfiguration:

    • In ext_localconf.php der Extension sicherstellen, dass das Repository korrekt registriert ist:
      \TYPO3\CMS\Extbase\Utility\ExtensionUtility::configurePlugin(
          'Qb.DvnlpIntranet',
          'MemberPlugin',
          [\Qb\DvnlpIntranet\Controller\MemberController::class => 'show'],
          []
      );
      

3. Betroffene TYPO3 Extension

  • Extension-Name: dvnlp_intranet (Namespace: Qb\DvnlpIntranet)
  • Betroffene Domain-Modelle: Member (\Qb\DvnlpIntranet\Domain\Model\Member)
  • Wahrscheinliche Plugins/Controller:
    • Ein Frontend-Plugin, das Member-Objekte anzeigt (z. B. MemberController::showAction).
    • Ein Backend-Modul, das auf Member-Records zugreift.

4. Confidence

  • 95% – Die Ursache ist klar (fehlendes Objekt mit UID 5338), und die Lösungsansätze sind standardmäßig für Extbase-Extensions.
  • Unsicherheitsfaktoren:
    • Ob das Objekt absichtlich gelöscht wurde oder ein Bug vorliegt.
    • Ob die Extension zusätzliche Logik hat (z. B. Soft-Delete), die den Fehler beeinflusst.

Zusammenfassung

Punkt Details
Ursache Member-Objekt mit UID 5338 existiert nicht (gelöscht/fehlende Rechte).
Fix Objekt prüfen, Referenzen bereinigen, Repository/Controller anpassen.
Extension dvnlp_intranet (Namespace: Qb\DvnlpIntranet).
Confidence 95%

Empfehlung:

  1. Datenbank prüfen (existiert das Objekt?).
  2. Referenzen bereinigen (falls gelöscht).
  3. Code anpassen (Fehlerbehandlung im Repository/Controller).
  4. Caches leeren nach Änderungen.

Nichts anzuzeigen

Aktionen

Auch abrufbar als: Atom PDF