# Crash creating new email in v7

**URL:** <https://forum.mautic.org/t/crash-creating-new-email-in-v7/38683>\
**Category:** Product Support\
**Created:** [October 26, 2026, 7:33pm UTC](https://forum.mautic.org/t/crash-creating-new-email-in-v7/38683 "2026-10-26T19:33:55Z")\
**Posts on this page:** 2\
**Page:** 1

<div class="post-metadata">

**Author:** ![adam5532](https://sea2.discourse-cdn.com/flex020/user_avatar/forum.mautic.org/adam5532/32/12643_2.png) [@adam5532](https://forum.mautic.org/u/adam5532)\
**Post date:** [October 26, 2026, 7:33pm UTC](https://forum.mautic.org/t/crash-creating-new-email-in-v7/38683/1 "2026-10-26T19:33:55Z")

</div>

**Your software**  
My Mautic version is: 7.2.1  
My PHP version is: 8.4.27  
My Database type and version is: Maria dB 11.4

**Your problem**  
My problem is: When creating a new email and then hitting “Save,” it goes to a “500 Internal Server Error” page.

This was working. The only change that I can think of is the update to PHP 8.4.27 and my host disabled session.upload\_progress.enabled for all servers.

These errors are showing in the log:

> [2026-10-26T01:33:59.191146+00:00] app.CRITICAL: Uncaught PHP Exception TypeError: “Mautic\FormBundle\Controller\PublicController::previewAction(): Argument #5 ($id) must be of type int, string given, called in /[my site]/mautic/docroot/vendor/symfony/http-kernel/HttpKernel.php on line 183” at /[my site]/mautic/docroot/app/bundles/FormBundle/Controller/PublicController.php line 522 {“exception”:“[object] (TypeError(code: 0): Mautic\FormBundle\Controller\PublicController::previewAction(): Argument #5 ($id) must be of type int, string given, called in /[my site]/mautic/docroot/vendor/symfony/http-kernel/HttpKernel.php on line 183 at /[my site]/mautic/docroot/app/bundles/FormBundle/Controller/PublicController.php:522)”} {“hostname”:“[vps.myserver.com](http://vps.myserver.com)”,“pid”:484497}  
> [2026-10-26T19:02:03.534634+00:00] app.CRITICAL: Uncaught PHP Exception Error: “Class “Symfony\Component\DomCrawler\Crawler” not found” at /[my site]/mautic/docroot/app/bundles/EmailBundle/Validator/ValidEmailLinksValidator.php line 49 {“exception”:“[object] (Error(code: 0): Class “Symfony\Component\DomCrawler\Crawler” not found at /[my site]/mautic/docroot/app/bundles/EmailBundle/Validator/ValidEmailLinksValidator.php:49)”} {“hostname”:“[vps.myserver.com](http://vps.myserver.com)”,“pid”:547734}

Steps I have tried to fix the problem:

Cleared cache

---

<div class="post-metadata">

**Author:** ![alexzlobin](https://sea2.discourse-cdn.com/flex020/user_avatar/forum.mautic.org/alexzlobin/32/13606_2.png) [@alexzlobin](https://forum.mautic.org/u/alexzlobin)\
**Post date:** [October 27, 2026, 12:44am UTC](https://forum.mautic.org/t/crash-creating-new-email-in-v7/38683/2 "2026-10-27T00:44:53Z")

</div>

Hi Adam  
The two log entries appear to describe separate problems.

The `session.upload_progress.enabled` setting is unrelated to this email-save failure. It only controls PHP upload-progress tracking.

The direct cause of the 500 error is:

Class “Symfony\Component\DomCrawler\Crawler” not found

This means that the runtime Composer dependencies are incomplete. Mautic’s email link validator requires both `symfony/dom-crawler` and `symfony/css-selector`.

First verify the installation from the Mautic directory containing `composer.json`:

```bash
php -r 'require "vendor/autoload.php"; $crawler = new Symfony\Component\DomCrawler\Crawler("<a href=\"https://example.com\">x</a>"); echo $crawler->filter("a[href]")->count(), PHP_EOL;'

```

The expected output is `1`.

If the packages are missing, back up `composer.json` and `composer.lock`, then install the runtime dependencies:

```auto
cp composer.json composer.json.before-dependency-fix
cp composer.lock composer.lock.before-dependency-fix

composer remove --dev symfony/dom-crawler --no-update
composer require symfony/dom-crawler:"~7.4.0" symfony/css-selector:"~7.4.0" --update-no-dev --no-scripts
composer dump-autoload --classmap-authoritative

```

After that, clear the Mautic cache and restart PHP-FPM and any long-running workers. If this is running in Docker, the change must be included in the image or persistent application volume; installing packages inside a temporary container will be lost after recreation.

The `previewAction()` error is a separate issue. It shows that a route parameter is arriving as a string while the controller expects an integer. Please check the exact request URL that produces this error and make sure that all Mautic files come from the same 7.2.1 release and that the application cache has been rebuilt.

This is not explained by `session.upload_progress.enabled`. If the `previewAction()` error remains after a clean, consistent deployment, it should be reported separately with the full request URL and stack trace.
