Module import failed for Communication Link, Unable to Send emails

I recently tried to upgrade from V11 to V12. After things didn’t work out, I had to revert to V-11. This ended up in lot of issues, most of which I resolved via the forums. Right now, when I try to email a document (Purchase order), I get following error

> Traceback (most recent call last):
  File "/home/frappe/frappe-bench/apps/frappe/frappe/app.py", line 61, in application
    response = frappe.handler.handle()
  File "/home/frappe/frappe-bench/apps/frappe/frappe/handler.py", line 21, in handle
    data = execute_cmd(cmd)
  File "/home/frappe/frappe-bench/apps/frappe/frappe/handler.py", line 56, in execute_cmd
    return frappe.call(method, **frappe.form_dict)
  File "/home/frappe/frappe-bench/apps/frappe/frappe/__init__.py", line 1036, in call
    return fn(*args, **newargs)
  File "/home/frappe/frappe-bench/apps/frappe/frappe/core/doctype/communication/email.py", line 75, in make
    comm.insert(ignore_permissions=True)
  File "/home/frappe/frappe-bench/apps/frappe/frappe/model/document.py", line 211, in insert
    self._set_defaults()
  File "/home/frappe/frappe-bench/apps/frappe/frappe/model/document.py", line 598, in _set_defaults
    new_doc = frappe.new_doc(df.options, as_dict=True)
  File "/home/frappe/frappe-bench/apps/frappe/frappe/__init__.py", line 668, in new_doc
    return get_new_doc(doctype, parent_doc, parentfield, as_dict=as_dict)
  File "/home/frappe/frappe-bench/apps/frappe/frappe/model/create_new.py", line 21, in get_new_doc
    frappe.local.new_doc_templates[doctype] = make_new_doc(doctype)
  File "/home/frappe/frappe-bench/apps/frappe/frappe/model/create_new.py", line 39, in make_new_doc
    "docstatus": 0
  File "/home/frappe/frappe-bench/apps/frappe/frappe/__init__.py", line 734, in get_doc
    doc = frappe.model.document.get_doc(*args, **kwargs)
  File "/home/frappe/frappe-bench/apps/frappe/frappe/model/document.py", line 67, in get_doc
    controller = get_controller(doctype)
  File "/home/frappe/frappe-bench/apps/frappe/frappe/model/base_document.py", line 36, in get_controller
    module = load_doctype_module(doctype, module_name)
  File "/home/frappe/frappe-bench/apps/frappe/frappe/modules/utils.py", line 192, in load_doctype_module
    raise ImportError('Module import failed for {0} ({1})'.format(doctype, module_name + ' Error: ' + str(e)))
ImportError: Module import failed for Communication Link (frappe.core.doctype.communication_link.communication_link Error: No module named communication_link.communication_link)

I am unable to get past this. Previously, the email was working. I have configured the Email account and Domain etc.

The system is hosted on AWS with a local db.
Bench version: 4.1.0
Current branch: version-11

Have tried following:

bench update
bench update --build
bench update --patch
bench setup requirements

Any help would be appreciated.

For the benefit of users in V13.

In general Both Frappe and ERPNext Versions should be at same level.
During upgrades Frappe or ERPNext might fail to upgrade due to many reasons leaving one application in the previous version. for instance Frappe at V13.21 and ERPNext at V13.24

This version inconsistency is the major cause for all module import errors.

In my case Frappe failed to update because of Python version dependency.

I had to Update Python from 3.6 to 3.7 to get the Frappe updated.

Please make a note of the error you are getting while you do bench update. Please do not ignore them and take necessary action.