I have Flexmailer 1.1.1 installed as a "non-core" extension , but since upgrading to 5.35.1 Flexmailer 1.1.2 is included with core. (This probably came in before 5.35.)

The extensions page shows 1.1.1, implying the newer core version is not in use.

  • I thought that if I removed the non-core extension dir Civi would have a hunt around and find the core version, but when I removed that dir, CiviCRM crashed complaining that it can't find it.

  • I thought that if I disabled the extension then it might find the new one, but disabling flexmailer requires disabling mosaico, too, since it's a dependency. And disabling that would also require disabling mosaicomsgtpl too. I'm a bit worried that disabling extensions might lose some configuration values along the way, which I might not notice until it's too late?!

  • I thought that I could symlink from the old location to the new core location, but again this causes a crash:

    Class 'Civi\FlexMailer\Services' not found              
  • I thought I remembered that the filepath to an extension was in the db somewhere, but I searched and only found a reference to it in civicrm_extension - that table does not seem to have filepaths in it.


Here's how we handled this:

cv dis mosaicomsgtpl
cv dis mosaico
cv dis flexmailer
rm -rf org.civicrm.flexmailer
cv flush
cv en flexmailer
cv en mosaico
cv en mosaicomsgtpl
cv ext:up

We've found that Mosaico didn't release it's grip on Flexmailer services properly and interfered with the process of getting it to use the core-ext version!

Since adding this to our upgrade step we haven't had any further issues.


Here's how I did it: Delete the cache files

From within the site's extensions dir:


mkdir -p "$BACKUP_DIR"
mv org.civicrm.flexmailer $BACKUP_DIR/.
rm Cache* # Remove cached container/ExtLoader files.
cv flush # runs cleanly
cv ext:upgrade-db

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.