Bug #43
offen[Bugsink] TYPO3\CMS\Extbase\Property\Exception\TargetNotFoundException: Object of type Qb\DvnlpIntranet\Domain\Model\Member with identity "5338" not found.
0%
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)¶
-
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).
-
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.
-
Cache leeren:
typo3 cache:flushoder 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 }
-
Alternative: Im Controller prüfen, ob das Objekt existiert, bevor es verwendet wird:
-
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.phpder Extension sicherstellen, dass das Repository korrekt registriert ist:\TYPO3\CMS\Extbase\Utility\ExtensionUtility::configurePlugin( 'Qb.DvnlpIntranet', 'MemberPlugin', [\Qb\DvnlpIntranet\Controller\MemberController::class => 'show'], [] );
- In
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.
- Ein Frontend-Plugin, das
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:
- Datenbank prüfen (existiert das Objekt?).
- Referenzen bereinigen (falls gelöscht).
- Code anpassen (Fehlerbehandlung im Repository/Controller).
- Caches leeren nach Änderungen.
Nichts anzuzeigen