---
title: "Breaking: #107783 - Registration of metadata extractors via registerExtractionService"
manual: "TYPO3 Core Changelog"
version: "main"
permalink: "https://docs.typo3.org/permalink/changelog:breaking-107783-1760945127"
source: "Changelog/14.0/Breaking-107783-RemovedRegisterExtractionService.rst"
typo3-version: "14.0"
typo3-major: 14
type: "breaking"
issue: 107783
forge: "https://forge.typo3.org/issues/107783"
tags: ["FAL", "PHP-API", "FullyScanned", "ext:core"]
rendered: "2026-09-23T15:30:34+00:00"
---

# Breaking: #107783 - Registration of metadata extractors via `registerExtractionService` {#breaking-107783-1760945127}

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

## Description {#description}

The method
`\TYPO3\CMS\Core\Resource\Index\ExtractorRegistry::registerExtractionService()`
has been removed in favor of automatic registration via the interface
`\TYPO3\CMS\Core\Resource\Index\ExtractorInterface`.

Registration of metadata extractors now happens automatically when a class
implements the required interface
`\TYPO3\CMS\Core\Resource\Index\ExtractorInterface`. No further
registration is necessary.

## Impact {#impact}

Any call to `ExtractorRegistry::registerExtractionService()` is now a
no-op and has no effect in TYPO3 v14.0+. Metadata extractors are automatically
registered via the interface.

## Affected installations {#affected-installations}

TYPO3 installations with custom extensions that register metadata extractor
classes via the mentioned method in `ext_localconf.php`.

The extension scanner will report such usages.

## Migration {#migration}

The method has been removed without deprecation in order to allow extensions
to work with TYPO3 v13 (using the registration method) and v14+ (using automatic
interface-based registration) without additional deprecations.

Remove the manual registration from `ext_localconf.php`:

**EXT:my_ext/ext_localconf.php**

```diff
- $extractorRegistry = GeneralUtility::makeInstance(ExtractorRegistry::class);
- $extractorRegistry->registerExtractionService(MyExtractor::class);
```

Since custom extractors already implement the required interface
`\TYPO3\CMS\Core\Resource\Index\ExtractorInterface`, no further
changes are required inside the extractor class itself.
