I have create the observer when the customer is register to get notification to admin

 <event name="customer_register_success">
    <observer name="sendmail_toadmin" instance="Namespace\Module \Observer\SendMailToAdmin"/>

Observer path is app/code/Namespace/Module/Observer/SendMailToAdmin

namespace Namespace\Module\Observer;

use Magento\Framework\Event\ObserverInterface;

class SendMailToAdmin implements ObserverInterface

const XML_PATH_EMAIL_RECIPIENT = 'trans_email/ident_general/email';
protected $_transportBuilder;
protected $inlineTranslation;
protected $scopeConfig;
protected $storeManager;
protected $_escaper;

public function __construct(
    \Magento\Framework\Mail\Template\TransportBuilder $transportBuilder,
    \Magento\Framework\Translate\Inline\StateInterface $inlineTranslation,
    \Magento\Framework\App\Config\ScopeConfigInterface $scopeConfig,
    \Magento\Store\Model\StoreManagerInterface $storeManager,
    \Magento\Framework\Escaper $escaper
) {
    $this->_transportBuilder = $transportBuilder;
    $this->inlineTranslation = $inlineTranslation;
    $this->scopeConfig = $scopeConfig;
    $this->storeManager = $storeManager;
    $this->_escaper = $escaper;

public function execute(\Magento\Framework\Event\Observer $observer)

    $customer = $observer->getData('customer');

        $error = false;

        $sender = [
            'name' => $this->_escaper->escapeHtml($customer->getFirstName()),
            'email' => $this->_escaper->escapeHtml($customer->getEmail()),
        $postObject = new \Magento\Framework\DataObject();
        $storeScope = \Magento\Store\Model\ScopeInterface::SCOPE_STORE; 
        $transport = 
            ->setTemplateIdentifier('1') // Send the ID of Email template which is created in Admin panel
                ['area' => \Magento\Framework\App\Area::AREA_FRONTEND, // using frontend area to get the template file
                'store' => \Magento\Store\Model\Store::DEFAULT_STORE_ID,]
            ->setTemplateVars(['data' => $postObject])
            ->addTo($this->scopeConfig->getValue(self::XML_PATH_EMAIL_RECIPIENT, $storeScope))
        $transport->sendMessage(); ;

    catch (\Exception $e) 


I got the error

we cant save the customer

please help me

  • Are you sure the observer is firing ? @Magento Commented Aug 27, 2019 at 6:31
  • When i click on create account it display message We can't save the customer..when i remove the observer then it work properly Commented Aug 27, 2019 at 6:36
  • setTemplateIdentifier('1') provide a valid identifier Commented Aug 27, 2019 at 7:04

1 Answer 1


This is just a guess, but maybe the problem is the space in your events.xml file?

It should be: Namespace\Module\Observer\SendMailToAdmin

instead of: Namespace\Module \Observer\SendMailToAdmin

<event name="customer_register_success">
    <observer name="sendmail_toadmin" instance="Namespace\Module\Observer\SendMailToAdmin"/> 

At first, I think it's just a typo when you write down your question, but your code work fine for me until I also copy that space into my code, then I can replicate the very same error message you described.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

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