---
title: "Breaking: #110999 - LocalDriver throws FileDoesNotExistException"
manual: "TYPO3 Core Changelog"
version: "main"
permalink: "https://docs.typo3.org/permalink/changelog:breaking-110999-1788639260"
source: "Changelog/15.0/Breaking-110999-LocalDriverThrowsFileDoesNotExistException.rst"
typo3-version: "15.0"
typo3-major: 15
type: "breaking"
issue: 110999
forge: "https://forge.typo3.org/issues/110999"
tags: ["FAL", "PHP-API", "NotScanned", "ext:core"]
rendered: "2026-10-27T20:58:30+00:00"
---

# Breaking: #110999 - LocalDriver throws FileDoesNotExistException {#breaking-110999-1788639260}

See [forge#110999](https://forge.typo3.org/issues/110999)

## Description {#description}

The
`\TYPO3\CMS\Core\Resource\Driver\LocalDriver::getFileInfoByIdentifier()`
method now throws the specific
`\TYPO3\CMS\Core\Resource\Exception\FileDoesNotExistException` when the
requested file does not exist. Previously, the global
`\InvalidArgumentException` was thrown.

## Impact {#impact}

Extensions that catch `\InvalidArgumentException` when calling
`\TYPO3\CMS\Core\Resource\Driver\LocalDriver::getFileInfoByIdentifier()` will no longer catch the
exception. Code that catches
`\TYPO3\CMS\Core\Resource\Exception\ResourceDoesNotExistException`
continues to work because `\TYPO3\CMS\Core\Resource\Exception\FileDoesNotExistException` extends it.

## Affected installations {#affected-installations}

Installations are affected when custom extension code directly or indirectly
calls `\TYPO3\CMS\Core\Resource\Driver\LocalDriver::getFileInfoByIdentifier()` and catches
`\InvalidArgumentException` for missing files.

## Migration {#migration}

Catch `\TYPO3\CMS\Core\Resource\Exception\FileDoesNotExistException` instead:

```php
use TYPO3\CMS\Core\Resource\Exception\FileDoesNotExistException;

try {
    $fileInfo = $driver->getFileInfoByIdentifier($identifier);
} catch (FileDoesNotExistException) {
    // Handle the missing file.
}
```

Code that handles missing files and folders alike can catch the parent
`\TYPO3\CMS\Core\Resource\Exception\ResourceDoesNotExistException` instead.
