Fatal HTMLPurifier email error in new install (SuiteCRM 7.9.12)

I installed SuiteCRM 7.9.12 on a Debian VM (from TURNKEY, their LAMP VM setup for Sugar, which I upgraded to PHP 7 and seems to mostly work fine, after I fixed the 2 things the install complained about).

Although the test email was sent OK (using SendInBlue, a nice free service), trying to send a non-test email bombs. Specifically, trying to change a user’s password results in a popup with the following:

Warning: Base directory /var/www/SuiteCRM-7.9.12/include/HTMLPurifier/standalone/HTMLPurifier/DefinitionCache/Serializer does not exist, please create or change using %Cache.SerializerPath occurred in /var/www/SuiteCRM-7.9.12/include/HTMLPurifier/HTMLPurifier.standalone.php on line 15279 [2018-02-13 15:04:09] display_stack_trace caller, file: /var/www/SuiteCRM-7.9.12/include/utils.php line#: 3517
[L:](:StackTraceErrorHandler)
/var/www/SuiteCRM-7.9.12/include/HTMLPurifier/HTMLPurifier.standalone.php[L:15279](:trigger_error)
/var/www/SuiteCRM-7.9.12/include/HTMLPurifier/HTMLPurifier.standalone.php[L:15180](HTMLPurifier_DefinitionCache_Serializer:_prepareDir)
/var/www/SuiteCRM-7.9.12/include/HTMLPurifier/HTMLPurifier.standalone.php[L:14981](HTMLPurifier_DefinitionCache_Serializer:cleanup)
/var/www/SuiteCRM-7.9.12/include/HTMLPurifier/HTMLPurifier.standalone.php[L:15421](HTMLPurifier_DefinitionCache_Decorator:cleanup)
/var/www/SuiteCRM-7.9.12/include/HTMLPurifier/HTMLPurifier.standalone.php[L:2220](HTMLPurifier_DefinitionCache_Decorator_Cleanup:get)
/var/www/SuiteCRM-7.9.12/include/HTMLPurifier/HTMLPurifier.standalone.php[L:2130](HTMLPurifier_Config:getDefinition)
/var/www/SuiteCRM-7.9.12/include/HTMLPurifier/HTMLPurifier.standalone.php[L:5021](HTMLPurifier_Config:getHTMLDefinition)
/var/www/SuiteCRM-7.9.12/include/HTMLPurifier/HTMLPurifier.standalone.php[L:178](HTMLPurifier_Generator:__construct)
/var/www/SuiteCRM-7.9.12/include/clean.php[L:196](HTMLPurifier:purify)
/var/www/SuiteCRM-7.9.12/modules/Emails/Email.php[L:1423](SugarCleaner:cleanHtml)

Also, when I click on the External Accounts tab for the same user, I get:

Notice: Undefined index: eapm occurred in /var/www/SuiteCRM-7.9.12/include/SubPanel/SubPanelDefinitions.php on line 752 [2018-02-13 15:22:18] display_stack_trace caller, file: /var/www/SuiteCRM-7.9.12/include/utils.php line#: 3517
/var/www/SuiteCRM-7.9.12/include/SubPanel/SubPanelDefinitions.php[L:752](:StackTraceErrorHandler)
/var/www/SuiteCRM-7.9.12/include/SubPanel/SubPanelViewer.php[L:88](SubPanelDefinitions:load_subpanel)
/var/www/SuiteCRM-7.9.12/include/MVC/Controller/SugarController.php[L:1081](:require_once)
/var/www/SuiteCRM-7.9.12/include/MVC/Controller/SugarController.php[L:465](SugarController:handleActionMaps)
/var/www/SuiteCRM-7.9.12/include/MVC/Controller/SugarController.php[L:373](SugarController:process)
/var/www/SuiteCRM-7.9.12/include/MVC/SugarApplication.php[L:105](SugarController:execute)
/var/www/SuiteCRM-7.9.12/index.php[L:52](SugarApplication:execute)
Notice: Undefined index: eapm occurred in /var/www/SuiteCRM-7.9.12/include/SubPanel/SubPanelDefinitions.php on line 755 [2018-02-13 15:22:18] display_stack_trace caller, file: /var/www/SuiteCRM-7.9.12/include/utils.php line#: 3517
/var/www/SuiteCRM-7.9.12/include/SubPanel/SubPanelDefinitions.php[L:755](:StackTraceErrorHandler)
/var/www/SuiteCRM-7.9.12/include/SubPanel/SubPanelViewer.php[L:88](SubPanelDefinitions:load_subpanel)
/var/www/SuiteCRM-7.9.12/include/MVC/Controller/SugarController.php[L:1081](:require_once)
/var/www/SuiteCRM-7.9.12/include/MVC/Controller/SugarController.php[L:465](SugarController:handleActionMaps)
/var/www/SuiteCRM-7.9.12/include/MVC/Controller/SugarController.php[L:373](SugarController:process)
/var/www/SuiteCRM-7.9.12/include/MVC/SugarApplication.php[L:105](SugarController:execute)
/var/www/SuiteCRM-7.9.12/index.php[L:52](SugarApplication:execute)

The Apache error.log shows:

[Mon Feb 12 16:49:50.449432 2018] [:error] [pid 7213] [client 192.168.0.178:63255] PHP  22. HTMLPurifier_DefinitionCache_Serializer->_prepareDir() /var/www/SuiteCRM-7.9.12/include/HTMLPurifier/HTMLPurifier.standalone.php:15180, referer: http://192.168.0.142/suitecrm/index.php?module=Users&action=EditView&return_module=Users&return_action=DetailView
[Mon Feb 12 16:49:50.449441 2018] [:error] [pid 7213] [client 192.168.0.178:63255] PHP  23. trigger_error() /var/www/SuiteCRM-7.9.12/include/HTMLPurifier/HTMLPurifier.standalone.php:15279, referer: http://192.168.0.142/suitecrm/index.php?module=Users&action=EditView&return_module=Users&return_action=DetailView

I’d dig into the code and see exactly what’s failing, but something tells me it’s not a bug, and there’s something simple going on instead. The entire SuiteCRM directory tree is owned by www-data, which is the user Apache’s running as.

Any ideas are welcome.

:whistle: It turns out that those errors aren’t as fatal as they seem, and are really just “what happens when you use SuiteCRM.” (Not great, but what can you do?)

Turning off Display stack trace of errors in System Settings makes it work correctly. It turns out it was sending the email, just faking me out with the mess on-screen.

Thanks to everyone for not insulting the noob.