Bug #48
offen[Bugsink] TYPO3\CMS\Extbase\Property\Exception\TargetNotFoundException: Object of type Qb\DvnlpIntranet\Domain\Model\Member with identity "5186" not found.
0%
Beschreibung
Bugsink: https://bugsink.cytrus.de/issues/issue/814d6871-2a08-46e4-b5df-cc9c67f1cbd0/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 "5186" not found.
Automatisch erstellt durch n8n
KI-Analyse:
Analyse des Fehlers: TargetNotFoundException für Member-Objekt mit UID 5186¶
1. Ursache identifizieren¶
Die TargetNotFoundException wird von Extbase geworfen, wenn ein Repository versucht, ein Domain-Objekt anhand einer gegebenen UID (hier: 5186) zu laden, dieses jedoch nicht in der Datenbank existiert oder nicht zugänglich ist.
Mögliche Gründe:¶
-
Datenbank-Inkonsistenz:
- Der Datensatz mit UID
5186in der Tabelletx_dvnlpintranet_domain_model_member(oder einer verknüpften Tabelle) existiert nicht (gelöscht, nie angelegt, falsche UID). - Die Tabelle oder der Datensatz ist nicht für die aktuelle Sprache/PID verfügbar (z. B. bei
sys_language_uidoderpid-Restriktionen).
- Der Datensatz mit UID
-
Fehlende Berechtigungen:
- Der Frontend-User hat keine Leseberechtigung für den Datensatz (z. B. durch
fe_groups-Restriktion).
- Der Frontend-User hat keine Leseberechtigung für den Datensatz (z. B. durch
-
Falsche Konfiguration:
- Das Repository oder der Query ist falsch konfiguriert (z. B. falsche
storagePid,enableFieldsnicht berücksichtigt). - Der Datensatz wurde manuell gelöscht, aber Referenzen (z. B. in Plugins, Menüs oder anderen Tabellen) blieben bestehen.
- Das Repository oder der Query ist falsch konfiguriert (z. B. falsche
-
Cache-Problem:
- Der TYPO3-Cache enthält veraltete Referenzen (z. B. nach einem Import/Update).
Konkreter Auslöser im Stacktrace:¶
Der Fehler tritt im Frontend-Kontext auf, vermutlich bei der Verarbeitung eines Extbase-Plugins (z. B. ein Member-Listing oder Detail-View). Die Exception wird in der Middleware-Chain abgefangen, was darauf hindeutet, dass der Fehler während der Request-Verarbeitung auftritt.
2. Fix beschreiben (konkret)¶
Schritt 1: Prüfen, ob der Datensatz existiert¶
-
Datenbank-Check:
SELECT * FROM tx_dvnlpintranet_domain_model_member WHERE uid = 5186;- Falls kein Ergebnis: Datensatz wurde gelöscht oder nie angelegt.
- Falls Ergebnis vorhanden: Prüfen, ob
deleted=0,hidden=0, und diepid/sys_language_uidzum aktuellen Kontext passt.
Schritt 2: Referenzen bereinigen¶
-
TYPO3 Backend:
- Im List-Modul nach dem Datensatz suchen (UID 5186).
- Falls gelöscht: Alle Referenzen (z. B. in Plugins, Menüs, oder anderen Tabellen) manuell anpassen oder löschen.
-
Extbase-Repository:
- Im Repository (
MemberRepository) prüfen, ob der Query korrekt ist:public function findByUid($uid) { $query = $this->createQuery(); $query->getQuerySettings()->setIgnoreEnableFields(true); // Nur für Debug! $query->matching($query->equals('uid', $uid)); return $query->execute()->getFirst(); }- Falls der Datensatz existiert, aber nicht geladen wird:
enableFieldsprüfen (z. B.hidden,starttime,endtime).
- Falls der Datensatz existiert, aber nicht geladen wird:
- Im Repository (
Schritt 3: Fehlerbehandlung im Code¶
-
Graceful Degradation:
- Im Controller oder Service, der den Member lädt, eine Fallback-Logik einbauen:
try { $member = $this->memberRepository->findByUid(5186); } catch (\TYPO3\CMS\Extbase\Property\Exception\TargetNotFoundException $e) { // Loggen oder 404-Seite anzeigen $this->logger->error('Member not found', ['uid' => 5186]); $this->redirect('notFoundAction'); }
- Im Controller oder Service, der den Member lädt, eine Fallback-Logik einbauen:
-
Cache leeren:
- TYPO3-Cache leeren (
flush cacheim Backend oder via CLI:typo3 cache:flush).
- TYPO3-Cache leeren (
Schritt 4: Konfiguration prüfen¶
-
TypoScript:
- Prüfen, ob die
storagePidkorrekt gesetzt ist:plugin.tx_dvnlpintranet { persistence { storagePid = 123 // PID der Member-Datensätze } }
- Prüfen, ob die
-
TCA/Extbase-Konfiguration:
- Prüfen, ob das Feld
uidim TCA alsreadOnlyoderexcludemarkiert ist (sollte nicht der Fall sein).
- Prüfen, ob das Feld
3. Betroffene TYPO3 Extension¶
-
Extension-Name:
dvnlp_intranet-
Domain-Modell:
Qb\DvnlpIntranet\Domain\Model\Member -
Repository:
Qb\DvnlpIntranet\Domain\Repository\MemberRepository
-
Domain-Modell:
- Hinweis: Die Extension scheint ein Intranet-System mit Member-Verwaltung zu sein.
4. Confidence (0-100%)¶
- 90% – Die Ursache ist mit hoher Wahrscheinlichkeit ein nicht existierender oder nicht zugänglicher Datensatz (UID 5186).
-
10% Unsicherheit:
- Es könnte ein Cache-Problem vorliegen (z. B. veraltete Referenzen).
- Seltenere Ursachen: Falsche
storagePid, fehlende Berechtigungen, oder ein Bug in der Extension.
Zusammenfassung der nächsten Schritte¶
- Datenbank prüfen (existiert UID 5186?).
- Referenzen bereinigen (z. B. Plugins, Menüs).
- Fehlerbehandlung im Code anpassen (Graceful Degradation).
- Cache leeren und Konfiguration prüfen.
- Logging einbauen, um ähnliche Fehler zukünftig schneller zu identifizieren.
Falls der Datensatz absichtlich gelöscht wurde, sollten alle Referenzen darauf entfernt werden. Falls er versehentlich gelöscht wurde, kann er aus einem Backup wiederhergestellt werden.
Nichts anzuzeigen