TYPO3 12: Fehlermeldung „Unable to call method getQueryParams of non-object request“ in Scheduler / CronJob

Wir haben einen Scheduler Task für Typo3 12 entwickelt, der einen $repository->findAll() Zugriff auf ein Repository macht.
Beim Ausführen des Tasks über die Kommandozeile erschien folgende Fehlermeldung:

In GetAttrNode.php line 110:
Unable to call method "getQueryParams" of non-object "request".

Nach langem Suchen fanden wir das Problem: Es lag an einer TypoScript-Condition, die auf das  request Object zugegriffen hat. Da es im CLI-Context des Schedulers kein request-Object gibt, wirft `/vendor/symfony/expression-language/Node/GetAttrNode.php` einen Fehler.

Lösung:

  • Über das Backend-Modul „TypoScript“, Dropdown „Aktives TypoScript“ nach der Condition schauen, die request verwendet
  • Das TypoScript korrigieren, damit zunächst geprüft wird, ob request überhaupt existiert bevor die Method getQueryParams() aufgerufen wird
// vorher: Hier ensteht das Problem!
[request.getQueryParams()['someVar'] == 1]
  // TypoScript
[END]

// Lösung: Erst prüfen, ob request existiert
[request && (request.getQueryParams()['someVar'] == 1)]
  // TypoScript
[END]

Bitteschön. Schreib wenigstens mal „Danke“ in die Kommentare.