Error monitoring for TYPO3.

With the networkteam/sentry-client extension, TYPO3 reports every exception to Fehlo instead of only logging it. You need one Composer package and three lines of configuration.

As of 24 October 2026, extension networkteam/sentry-client 6.0.0 (extension key sentry_client), TYPO3 12 to 14, PHP 8.1 or later. We have not yet run the PHP SDK against Fehlo ourselves; it speaks the same protocol as the SDKs we tested.

The networkteam extension is by far the most used Sentry connector for TYPO3. It replaces TYPO3's exception handlers and reports every exception that reaches TYPO3. Since version 5 it is only distributed through Composer; the TER version is no longer maintained.

1. Install the extension

Terminal
composer require networkteam/sentry-client

2. Exception handlers and DSN

In config/system/additional.php (classic mode: typo3conf/system/additional.php):

config/system/additional.php
<?php

$GLOBALS['TYPO3_CONF_VARS']['SYS']['productionExceptionHandler'] = \Networkteam\SentryClient\ProductionExceptionHandler::class;
$GLOBALS['TYPO3_CONF_VARS']['SYS']['debugExceptionHandler'] = \Networkteam\SentryClient\DebugExceptionHandler::class;

$GLOBALS['TYPO3_CONF_VARS']['EXTENSIONS']['sentry_client']['dsn'] = 'https://<key>@app.fehlo.de/<project-id>';
$GLOBALS['TYPO3_CONF_VARS']['EXTENSIONS']['sentry_client']['reportUserInformation'] = 'none';

The DSN can also come from the environment; a SENTRY_DSN environment variable wins over the setting. Release and environment come from SENTRY_RELEASE and SENTRY_ENVIRONMENT, otherwise from TYPO3's application context.

.env or server environment
SENTRY_DSN=https://<key>@app.fehlo.de/<project-id>
SENTRY_ENVIRONMENT=Production
SENTRY_RELEASE=1.0.0

You can also set the DSN under Admin Tools, Settings, Extension Configuration, or with vendor/bin/typo3 configuration:set EXTENSIONS/sentry_client/dsn '...'.

3. Test it

The extension provides a TypoScript line for this. Add it to a test page's setup and open the page:

TypoScript setup
page.20 = USER
page.20 {
  userFunc = Networkteam\SentryClient\Client->captureException
}

According to the extension's documentation this triggers an error that gets reported. The error page shows the event ID you can look up in Fehlo. Remove the line afterwards.

Report log entries too

Some errors are caught by TYPO3 and only logged. With the extension's log writer, those entries from ERROR up reach Fehlo as well:

config/system/additional.php
$GLOBALS['TYPO3_CONF_VARS']['LOG']['writerConfiguration'] = [
    \TYPO3\CMS\Core\Log\LogLevel::ERROR => [
        \Networkteam\SentryClient\SentryLogWriter::class => [],
    ],
];

Privacy

By default the extension adds the backend and frontend user UID and an IP address shortened by TYPO3 to every event (reportUserInformation = userid). The example above sets it to none: then neither user IDs nor IP are sent. Fehlo strips the sender IP anyway and filters email addresses, passwords and tokens. The extension doesn't report notices and deprecations, and by default not database connection errors either.

Questions

Does it work with TYPO3 11?

Version 6.0.0 supports TYPO3 12, 13 and 14. For TYPO3 11, use version 5.2.1 of the extension.

Can I use it without Composer?

Not with current versions. Since 5.0.0 the extension is only distributed through Composer.

Can I set more SDK options?

Yes, through $GLOBALS['TYPO3_CONF_VARS']['EXTCONF']['sentry_client']['options'] in additional.php, for example a sample rate.

Nothing arrives. What should I check?

First the DSN: it has to point at app.fehlo.de. Second, whether your server or browser can reach https://app.fehlo.de (firewall, proxy, ad blocker). Third, whether this month's quota is used up; you get an email when it is. Fourth, whether sampleRate or beforeSend drops events. If only performance data is missing, this month's transactions may be used up.