Error monitoring for Shopware 6.

With the Friends of Shopware bundle and the Symfony SDK, your shop reports errors from storefront controllers, the admin API and queue workers to Fehlo, with sales channel and language.

As of 24 October 2026, frosh/sentry-bundle 0.4.0 from Friends of Shopware with sentry/sentry-symfony 5.14.0, Shopware 6.4.20 to 6.7. We have not yet run the PHP SDK against Fehlo ourselves; it speaks the same protocol as the SDKs we tested.

Shopware 6 is a Symfony application. The Friends of Shopware bundle connects the Symfony SDK to Shopware: it takes over Shopware's list of exceptions that aren't errors (such as "product not found"), adds sales channel, language and currency to each event, and can report JavaScript errors from the storefront if you want.

1. Install the packages

Terminal
composer require "frosh/sentry-bundle:*" "sentry/sentry-symfony:*"

Add both bundles to config/bundles.php. If Symfony Flex already added a SentryBundle line for prod only, replace it:

config/bundles.php
Sentry\SentryBundle\SentryBundle::class => ['all' => true],
Frosh\SentryBundle\ShopwareSentryBundle::class => ['all' => true],

2. DSN and settings

.env.local
SENTRY_DSN="https://<key>@app.fehlo.de/<project-id>"
SENTRY_ENVIRONMENT=production
SENTRY_RELEASE=shop@1.0.0

Create config/packages/sentry.yaml, or replace the one the Symfony recipe created:

config/packages/sentry.yaml
parameters:
    env(SENTRY_DSN): ''
    env(SENTRY_RELEASE): ''
    env(SENTRY_ENVIRONMENT): '%kernel.environment%'

sentry:
    dsn: "%env(SENTRY_DSN)%"
    messenger:
        enabled: true
    options:
        error_types: E_ALL & ~E_DEPRECATED & ~E_USER_DEPRECATED
        integrations:
            - 'Frosh\SentryBundle\Integration\UseShopwareExceptionIgnores'
        environment: '%env(SENTRY_ENVIRONMENT)%'
        release: '%env(SENTRY_RELEASE)%'
        send_default_pii: false

messenger.enabled also reports errors from message queue workers. Deprecations stay out; otherwise they fill your quota.

3. Test it

Terminal
bin/console sentry:test

The command sends a test message to the configured DSN. It appears in Fehlo within seconds. Clear the cache when you change the YAML later.

Storefront errors

The bundle can report JavaScript errors from the shop. That's off by default, for a reason: the bundle loads the browser SDK from browser.sentry-cdn.com, so every visitor's browser connects to Sentry's CDN, with its IP address. For a shop in the EU that belongs in the privacy policy and needs a legal basis.

config/packages/sentry.yaml
frosh_sentry:
    storefront:
        enabled: true
        replay_recording:
            enabled: false
        tracing:
            enabled: false

If you want storefront errors, serve the SDK yourself by overriding the bundle's sentry Twig block. Keep session replay off: the bundle's template masks neither text nor media.

Privacy

send_default_pii is false: no headers, cookies or IP addresses. As the user, the bundle sets only Shopware's customer ID, a UUID without email. Fehlo also strips the sender's IP and filters email addresses, passwords and tokens. Don't set data_collection: once it is set, its more permissive defaults apply, and the SDK sends IP addresses, cookies and bodies.

Headless installs without the shopware/storefront package can't install version 0.4.0, because the bundle requires it. Use the Symfony SDK on its own there, see Symfony setup.

Questions

Is there a plugin in the Shopware Store?

For error monitoring with the sentry SDKs, the Composer package frosh/sentry-bundle is the usual route. It's a Symfony bundle you install with Composer, not a store plugin.

Does it work with Shopware 6.7?

Yes. Version 0.4.0 supports Shopware 6.4.20 to 6.7.

Does storefront monitoring cost extra?

No, but every JavaScript error counts as an event. With many visitors and one broken plugin that adds up fast. Start with the server.

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.