diff --git a/typo3/sysext/backend/Classes/Controller/EditDocumentController.php b/typo3/sysext/backend/Classes/Controller/EditDocumentController.php
index ebe404f344f8f96926a348a729581053716db387..8bfe38453b2a45ef75f0c8b923195f56ea3edde5 100644
--- a/typo3/sysext/backend/Classes/Controller/EditDocumentController.php
+++ b/typo3/sysext/backend/Classes/Controller/EditDocumentController.php
@@ -1538,7 +1538,7 @@ class EditDocumentController
             );
             $referenceCountMessage = BackendUtility::referenceCount(
                 $this->firstEl['table'],
-                (string)(int)$this->firstEl['uid'],
+                (int)$this->firstEl['uid'],
                 $this->getLanguageService()->sL(
                     'LLL:EXT:core/Resources/Private/Language/locallang_core.xlf:labels.referencesToRecord'
                 ),
diff --git a/typo3/sysext/backend/Classes/Utility/BackendUtility.php b/typo3/sysext/backend/Classes/Utility/BackendUtility.php
index f876a6c09d46e548a272d7e945e5fdbada000540..ad7ce1c940afb668aa3fddbe905ea4b745f76f60 100644
--- a/typo3/sysext/backend/Classes/Utility/BackendUtility.php
+++ b/typo3/sysext/backend/Classes/Utility/BackendUtility.php
@@ -52,7 +52,6 @@ use TYPO3\CMS\Core\Utility\ArrayUtility;
 use TYPO3\CMS\Core\Utility\ExtensionManagementUtility;
 use TYPO3\CMS\Core\Utility\GeneralUtility;
 use TYPO3\CMS\Core\Utility\MathUtility;
-use TYPO3\CMS\Core\Utility\PathUtility;
 use TYPO3\CMS\Core\Utility\StringUtility;
 use TYPO3\CMS\Core\Versioning\VersionState;
 
@@ -2521,46 +2520,29 @@ class BackendUtility
     /**
      * Counting references to a record/file
      *
-     * @param string $table Table name (or "_FILE" if its a file)
-     * @param string $ref Reference: If table, then int-uid, if _FILE, then file reference (relative to Environment::getPublicPath())
-     * @param string $msg Message with %s, eg. "There were %s records pointing to this file!
+     * @param string $table Table name
+     * @param int $ref Record uid
+     * @param string $msg Message with %s, e.g. "There were %s records pointing to this file!"
      * @param string|int|null $count Reference count
      * @return string|int Output string (or int count value if no msg string specified)
+     * @todo: The method should vanish altogether: The signature with $msg and $count and
+     *        string|int return value is odd, and the method contains hacks for sys_file.
      */
     public static function referenceCount($table, $ref, $msg = '', $count = null)
     {
-        if ($count === null) {
-            // Build base query
+        if ($count === null && MathUtility::canBeInterpretedAsInteger($ref)) {
+            // MathUtility::canBeInterpretedAsInteger($ref) and no method type hint for b/w compat.
             $queryBuilder = static::getQueryBuilderForTable('sys_refindex');
-            $queryBuilder
-                ->count('*')
-                ->from('sys_refindex')
+            $queryBuilder->count('*')->from('sys_refindex')
                 ->where(
-                    $queryBuilder->expr()->eq('ref_table', $queryBuilder->createNamedParameter($table))
-                );
-
-            // Look up the path:
-            if ($table === '_FILE') {
-                if (!str_starts_with($ref, Environment::getPublicPath())) {
-                    return '';
-                }
-
-                $ref = PathUtility::stripPathSitePrefix($ref);
-                $queryBuilder->andWhere(
-                    $queryBuilder->expr()->eq('ref_string', $queryBuilder->createNamedParameter($ref))
-                );
-            } else {
-                $queryBuilder->andWhere(
+                    $queryBuilder->expr()->eq('ref_table', $queryBuilder->createNamedParameter($table)),
                     $queryBuilder->expr()->eq('ref_uid', $queryBuilder->createNamedParameter($ref, Connection::PARAM_INT))
                 );
-                if ($table === 'sys_file') {
-                    $queryBuilder->andWhere($queryBuilder->expr()->neq('tablename', $queryBuilder->quote('sys_file_metadata')));
-                }
+            if ($table === 'sys_file') {
+                $queryBuilder->andWhere($queryBuilder->expr()->neq('tablename', $queryBuilder->quote('sys_file_metadata')));
             }
-
             $count = $queryBuilder->executeQuery()->fetchOne();
         }
-
         if ($count) {
             return $msg ? sprintf($msg, $count) : $count;
         }
diff --git a/typo3/sysext/core/Resources/Private/Language/locallang_core.xlf b/typo3/sysext/core/Resources/Private/Language/locallang_core.xlf
index 4b9ea4000ecd9d40bd21c9aaf492ee9bfeeb8413..81958733c383bcaa9daaead00fd12536e6c22e02 100644
--- a/typo3/sysext/core/Resources/Private/Language/locallang_core.xlf
+++ b/typo3/sysext/core/Resources/Private/Language/locallang_core.xlf
@@ -559,9 +559,6 @@ Do you want to continue WITHOUT saving?</source>
 			<trans-unit id="labels.referencesToRecord" resname="labels.referencesToRecord">
 				<source>There are %s reference(s) to this record!</source>
 			</trans-unit>
-			<trans-unit id="labels.referencesToFolder" resname="labels.referencesToFolder">
-				<source>There are %s reference(s) to this folder!</source>
-			</trans-unit>
 			<trans-unit id="labels.referencesToFile" resname="labels.referencesToFile">
 				<source>There are %s reference(s) to this file!</source>
 			</trans-unit>
diff --git a/typo3/sysext/filelist/Classes/ContextMenu/ItemProviders/FileProvider.php b/typo3/sysext/filelist/Classes/ContextMenu/ItemProviders/FileProvider.php
index f0e46fc35577a0faacd2d2f7f61a638146e00c6a..60c08288a770c3021e0af69b5b2c2cfa3c630bd2 100644
--- a/typo3/sysext/filelist/Classes/ContextMenu/ItemProviders/FileProvider.php
+++ b/typo3/sysext/filelist/Classes/ContextMenu/ItemProviders/FileProvider.php
@@ -409,10 +409,6 @@ class FileProvider extends AbstractProvider
                 $confirmMessage = sprintf(
                     $this->languageService->sL('LLL:EXT:core/Resources/Private/Language/locallang_core.xlf:mess.delete'),
                     trim($recordInfo)
-                ) . BackendUtility::referenceCount(
-                    '_FILE',
-                    $this->record->getIdentifier(),
-                    LF . $this->languageService->sL('LLL:EXT:core/Resources/Private/Language/locallang_core.xlf:labels.referencesToFolder')
                 );
             } else {
                 if ($this->backendUser->shallDisplayDebugInformation()) {
@@ -423,7 +419,7 @@ class FileProvider extends AbstractProvider
                     trim($recordInfo)
                 ) . BackendUtility::referenceCount(
                     'sys_file',
-                    (string)$this->record->getUid(),
+                    (int)$this->record->getUid(),
                     LF . $this->languageService->sL('LLL:EXT:core/Resources/Private/Language/locallang_core.xlf:labels.referencesToFile')
                 );
             }
diff --git a/typo3/sysext/filelist/Classes/FileList.php b/typo3/sysext/filelist/Classes/FileList.php
index 28c479c18dd3c101426bea3ff1e22dc3c9256f6c..64ffde9abb5ea0b087a217b19476719d4df6be2d 100644
--- a/typo3/sysext/filelist/Classes/FileList.php
+++ b/typo3/sysext/filelist/Classes/FileList.php
@@ -1118,18 +1118,16 @@ class FileList
         if (!$resourceView->canDelete()) {
             return null;
         }
-
         $recordInfo = $resourceView->getName();
-
+        $referenceCountText = '';
         if ($resourceView->resource instanceof Folder) {
             $identifier = $resourceView->getIdentifier();
-            $referenceCountText = BackendUtility::referenceCount('_FILE', $identifier, LF . $this->getLanguageService()->sL('LLL:EXT:core/Resources/Private/Language/locallang_core.xlf:labels.referencesToFolder'));
             $deleteType = 'delete_folder';
             if ($this->getBackendUser()->shallDisplayDebugInformation()) {
                 $recordInfo .= ' [' . $identifier . ']';
             }
         } else {
-            $referenceCountText = BackendUtility::referenceCount('sys_file', (string)$resourceView->getUid(), LF . $this->getLanguageService()->sL('LLL:EXT:core/Resources/Private/Language/locallang_core.xlf:labels.referencesToFile'));
+            $referenceCountText = BackendUtility::referenceCount('sys_file', (int)$resourceView->getUid(), LF . $this->getLanguageService()->sL('LLL:EXT:core/Resources/Private/Language/locallang_core.xlf:labels.referencesToFile'));
             $deleteType = 'delete_file';
             if ($this->getBackendUser()->shallDisplayDebugInformation()) {
                 $recordInfo .= ' [sys_file:' . $resourceView->getUid() . ']';
diff --git a/typo3/sysext/form/Classes/Service/DatabaseService.php b/typo3/sysext/form/Classes/Service/DatabaseService.php
index cd04337018f33f3be8f2a14961ab2cb59ac2ed27..fefdff3ad348c92867d7173dfaaef2aec059494d 100644
--- a/typo3/sysext/form/Classes/Service/DatabaseService.php
+++ b/typo3/sysext/form/Classes/Service/DatabaseService.php
@@ -35,7 +35,6 @@ class DatabaseService
      * Returns an array with all sys_refindex database rows which be
      * connected to a formDefinition identified by $persistenceIdentifier
      *
-     * @throws \InvalidArgumentException
      * @internal
      */
     public function getReferencesByPersistenceIdentifier(string $persistenceIdentifier): array
@@ -97,13 +96,10 @@ class DatabaseService
         return $items;
     }
 
-    /**
-     * @throws \InvalidArgumentException
-     */
     protected function getAllReferences(string $column): array
     {
         if ($column !== 'ref_string' && $column !== 'ref_uid') {
-            throw new \InvalidArgumentException('$column must not be "ref_string" or "ref_uid".', 1535406600);
+            throw new \InvalidArgumentException('$column must be "ref_string" or "ref_uid".', 1535406600);
         }
 
         $queryBuilder = GeneralUtility::makeInstance(ConnectionPool::class)->getQueryBuilderForTable('sys_refindex');
diff --git a/typo3/sysext/workspaces/Classes/Dependency/ElementEntity.php b/typo3/sysext/workspaces/Classes/Dependency/ElementEntity.php
index d0fabc7e8758086992f12168a8c80e1a0a970986..3d64eebcae556ee8bd0d08d8b81a6d53cafe8036 100644
--- a/typo3/sysext/workspaces/Classes/Dependency/ElementEntity.php
+++ b/typo3/sysext/workspaces/Classes/Dependency/ElementEntity.php
@@ -176,7 +176,7 @@ class ElementEntity
                 ->executeQuery();
 
             while ($row = $result->fetchAssociative()) {
-                if ($row['ref_table'] !== '_FILE' && $row['ref_table'] !== '_STRING') {
+                if ($row['ref_table'] !== '_STRING') {
                     $arguments = [
                         'table' => $row['ref_table'],
                         'id' => $row['ref_uid'],