diff --git a/Classes/Command/MigrateNewsCommandController.php b/Classes/Command/MigrateNewsCommandController.php
index d8cd27c9244b38cc6f1f09af07b70d590217def7..770eba208348d42ab5a9966c891a6f9bc1c512dc 100644
--- a/Classes/Command/MigrateNewsCommandController.php
+++ b/Classes/Command/MigrateNewsCommandController.php
@@ -96,7 +96,7 @@ class MigrateNewsCommandController extends Command {
 	 *
 	 * @param InputInterface $input
 	 * @param OutputInterface $output
-	 * @return void
+	 * @return int
 	 * @throws \JsonException
 	 */
 	public function execute(InputInterface $input, OutputInterface $output) {
@@ -124,7 +124,7 @@ class MigrateNewsCommandController extends Command {
 			->where(
 				$queryBuilder->expr()->eq('pid', $queryBuilder->createNamedParameter($pId, Connection::PARAM_INT))
 			)
-			->execute()->fetchAll();
+			->execute()->fetchAllAssociative();
 		$localDataHandler = GeneralUtility::makeInstance(DataHandler::class);
 		Bootstrap::initializeBackendAuthentication();
 		$localCommandMap = [
@@ -166,7 +166,7 @@ class MigrateNewsCommandController extends Command {
 					$newsPage->setLastUpdated($date);
 					$this->setMatchingTag($row);
 
-					/** @var File $image */
+					/** @var File $file */
 					$file = $this->getMatchingFile($row);
 					if ($file instanceof File) {
 						$teaserImage1 = $fileReferenceRepository->addFileReferenceFromFile(
@@ -222,6 +222,7 @@ class MigrateNewsCommandController extends Command {
 				$this->updateTranslation($row);
 			}
 		}
+		return Command::SUCCESS;
 	}
 
 	/**
@@ -252,7 +253,7 @@ class MigrateNewsCommandController extends Command {
 					)
 				)
 			)
-			->execute()->fetch();
+			->execute()->fetchAssociative();
 		if (!$fileReferenceResult) {
 			return NULL;
 		}
@@ -269,7 +270,7 @@ class MigrateNewsCommandController extends Command {
 					$queryBuilder->createNamedParameter($fileReferenceResult['uid_local'], Connection::PARAM_INT)
 				)
 			)
-			->execute()->fetch();
+			->execute()->fetchAssociative();
 		if (!$fileResult) {
 			return NULL;
 		}
@@ -302,7 +303,7 @@ class MigrateNewsCommandController extends Command {
 					$queryBuilder->createNamedParameter($row['uid'], Connection::PARAM_INT)
 				)
 			)
-			->execute()->fetchAll();
+			->execute()->fetchAllAssociative();
 		foreach ($mmRows as $mmRow) {
 			$values = [
 				'uid_local' => $this->categoryMap[(int) $mmRow['uid_local']],
@@ -385,7 +386,7 @@ class MigrateNewsCommandController extends Command {
 						$queryBuilder->createNamedParameter($parentId, Connection::PARAM_INT)
 					)
 				)
-				->execute()->fetch();
+				->execute()->fetchAssociative();
 			if ($result) {
 				$queryBuilder->where(
 					$queryBuilder->expr()->eq(
diff --git a/Classes/Controller/AbstractController.php b/Classes/Controller/AbstractController.php
index 345443d3661ff6ae41b44c302bdf2fc2b33b61e4..7bb3121191c4ea4956ed8dc57c070f43f5de84e0 100644
--- a/Classes/Controller/AbstractController.php
+++ b/Classes/Controller/AbstractController.php
@@ -79,7 +79,7 @@ abstract class AbstractController extends ActionController {
 	 * @throws \RuntimeException
 	 */
 	public function errorAction() {
-		throw new RuntimeException(parent::errorAction());
+		throw new RuntimeException($this->getFlattenedValidationErrorMessage());
 	}
 
 	/**
diff --git a/Classes/Controller/LatestController.php b/Classes/Controller/LatestController.php
index 93e1dd62b5a34f93280300294953810906229488..19b8628a71e5c5ccee01a91bbdbabb48b4272924 100644
--- a/Classes/Controller/LatestController.php
+++ b/Classes/Controller/LatestController.php
@@ -58,7 +58,7 @@ class LatestController extends AbstractController {
 	 *
 	 * @param array $newsMetaData
 	 * @param int $offset
-	 * @return void
+	 * @return null|\Psr\Http\Message\ResponseInterface
 	 * @throws \InvalidArgumentException
 	 * @throws \TYPO3\CMS\Extbase\Persistence\Exception\InvalidQueryException
 	 * @throws \TYPO3\CMS\Extbase\Configuration\Exception\InvalidConfigurationTypeException
diff --git a/Classes/Controller/ListByCategoryController.php b/Classes/Controller/ListByCategoryController.php
index 1f08231a655a8a2e5fd692e7a5e43f91dae12a4c..181e7d572dd2b694bd4c128c3624131092c82181 100644
--- a/Classes/Controller/ListByCategoryController.php
+++ b/Classes/Controller/ListByCategoryController.php
@@ -99,7 +99,7 @@ class ListByCategoryController extends AbstractController {
 	 *
 	 * @param array $newsMetaData
 	 * @param int $currentPageBrowserPage
-	 * @return void
+	 * @return null|\Psr\Http\Message\ResponseInterface
 	 * @throws \InvalidArgumentException
 	 * @throws \TYPO3\CMS\Extbase\Persistence\Exception\InvalidQueryException
 	 * @throws \TYPO3\CMS\Extbase\Configuration\Exception\InvalidConfigurationTypeException
diff --git a/Classes/Controller/NewsByAuthorController.php b/Classes/Controller/NewsByAuthorController.php
index 51fb2b276abfe90fb499c887717e60d81cc37ac9..7321064d68354b1d6750a5a989b5a299e45d471b 100644
--- a/Classes/Controller/NewsByAuthorController.php
+++ b/Classes/Controller/NewsByAuthorController.php
@@ -44,7 +44,7 @@ class NewsByAuthorController extends AbstractController {
 	 * Renders the news author list.
 	 *
 	 * @param int $authorId
-	 * @return void
+	 * @return null|\Psr\Http\Message\ResponseInterface
 	 * @throws \InvalidArgumentException
 	 * @throws \TYPO3\CMS\Extbase\Persistence\Exception\InvalidQueryException
 	 * @throws \TYPO3\CMS\Core\Package\Exception
diff --git a/Classes/Controller/NewsFeedController.php b/Classes/Controller/NewsFeedController.php
index 6cc30b1b189618182d99cd7e7c8a22ceddf92c54..c986f508423e839097f9e2bbd55a96eac5c3afb7 100644
--- a/Classes/Controller/NewsFeedController.php
+++ b/Classes/Controller/NewsFeedController.php
@@ -43,7 +43,7 @@ class NewsFeedController extends AbstractController {
 	/**
 	 * Renders the news feed
 	 *
-	 * @return void
+	 * @return null|\Psr\Http\Message\ResponseInterface
 	 * @throws \TYPO3\CMS\Extbase\Persistence\Exception\InvalidQueryException
 	 */
 	public function indexAction(): ?\Psr\Http\Message\ResponseInterface {
diff --git a/Classes/Controller/OverviewController.php b/Classes/Controller/OverviewController.php
index a03e3dc3f375faa1016c11c32b61c34fca951c3b..a5c802b2573cc6f6b2b2db2e099ffe9a3ebec314 100644
--- a/Classes/Controller/OverviewController.php
+++ b/Classes/Controller/OverviewController.php
@@ -485,7 +485,7 @@ class OverviewController extends AbstractController {
 		$categoriesById = [];
 		$newsMetaData = [];
 		foreach ($tags as $tag) {
-			/** @var $tag Tag */
+			/** @var Tag $tag */
 			$tagId = $tag->getUid();
 			$tagIds[] = $tagId;
 			$tagsById[$tagId] = $tag;
@@ -625,7 +625,7 @@ class OverviewController extends AbstractController {
 	 * @param array $newsMetaData
 	 * @param array|null $newsFilter
 	 * @param int $currentPageBrowserPage
-	 * @return void
+	 * @return null|\Psr\Http\Message\ResponseInterface
 	 * @throws ImmediateResponseException
 	 * @throws \TYPO3\CMS\Core\Error\Http\PageNotFoundException
 	 * @throws \TYPO3\CMS\Extbase\Configuration\Exception\InvalidConfigurationTypeException
diff --git a/Classes/Controller/SingleViewController.php b/Classes/Controller/SingleViewController.php
index cb8edbd3f2563e0e4f44412096f4e6d949bf2887..d65d6834ca0bf6415d9fe02926f51136abf35bff 100644
--- a/Classes/Controller/SingleViewController.php
+++ b/Classes/Controller/SingleViewController.php
@@ -62,12 +62,12 @@ class SingleViewController extends AbstractController {
 	/**
 	 * Renders the news single view
 	 *
-	 * @return void
+	 * @return null|\Psr\Http\Message\ResponseInterface
 	 * @throws \InvalidArgumentException
 	 */
 	public function singleViewAction(): ?\Psr\Http\Message\ResponseInterface {
-		/** @var News $news */
 		$currentId = (int) $GLOBALS['TSFE']->id;
+		/** @var News $news */
 		$news = $this->newsRepository->findByUid($currentId);
 		if (!$news) {
 			if (version_compare(
diff --git a/Classes/Domain/Repository/CategoryRepository.php b/Classes/Domain/Repository/CategoryRepository.php
index f9999d61fe3624bd5ab4852ca2631a24197d1bfb..6fffcc342b15c13d132b77ba1cea9ea4588c8c5d 100644
--- a/Classes/Domain/Repository/CategoryRepository.php
+++ b/Classes/Domain/Repository/CategoryRepository.php
@@ -60,7 +60,7 @@ class CategoryRepository extends AbstractRepository {
 				$queryBuilder->expr()->eq('translation.uid', $queryBuilder->createNamedParameter($uid, \PDO::PARAM_INT))
 			)
 			->setMaxResults(1)
-			->execute()->fetch();
+			->execute()->fetchAssociative();
 		if ($row && (int) $row['uid'] !== 0) {
 			return current($dataMapper->map($this->objectType, [$row]));
 		}
diff --git a/Classes/Domain/Repository/FileReferenceRepository.php b/Classes/Domain/Repository/FileReferenceRepository.php
index 81e83ccab5f9ccce8e5038117c6338edfd8c1af5..ac8e9612c3bd9ea888526ba601512099cc449c20 100644
--- a/Classes/Domain/Repository/FileReferenceRepository.php
+++ b/Classes/Domain/Repository/FileReferenceRepository.php
@@ -70,7 +70,7 @@ class FileReferenceRepository extends AbstractRepository {
 	 * extbase can not handle the default TCA for FAL records. Without this method the FAL records will miss
 	 * the uid_foreign, field name and table names.
 	 *
-	 * @param $fileId
+	 * @param int $fileId
 	 * @param array $reference
 	 * @param string $tablename
 	 * @param string $fieldname
diff --git a/Classes/Domain/Repository/NewsRepository.php b/Classes/Domain/Repository/NewsRepository.php
index 4e9763214bd19282364cd04a5f0216fcd84e42b8..d7c474bdc9b0e6c6d6273b1c3df282a7b3f71fb7 100644
--- a/Classes/Domain/Repository/NewsRepository.php
+++ b/Classes/Domain/Repository/NewsRepository.php
@@ -524,7 +524,7 @@ class NewsRepository extends AbstractRepository {
 	 */
 	public function findByUidIgnoreEnableFields($uid) {
 		$query = $this->createQuery();
-		/** @var $querySettings \TYPO3\CMS\Extbase\Persistence\Generic\Typo3QuerySettings */
+		/** @var \TYPO3\CMS\Extbase\Persistence\Generic\Typo3QuerySettings $querySettings */
 		$querySettings = $query->getQuerySettings();
 		$querySettings->setIgnoreEnableFields(TRUE);
 		$querySettings->setRespectStoragePage(FALSE);