PicklingError with plone.app.drafts.interfaces.IDraftable

I sometimes get errors on my site with the following details:

PicklingError: Can't pickle <class 'plone.app.drafts.interfaces.IDraftable'>: import of module plone.app.drafts.interfaces failed

2020-05-20T16:47:50 ERROR Zope.SiteErrorLog 1589964470.770.369489336299 https://mysiteaddress.org/emailers/template/letters/updates/@@edit
Traceback (innermost last):
Module ZPublisher.Publish, line 146, in publish
Module Zope2.App.startup, line 303, in commit
Module transaction._manager, line 131, in commit
Module transaction._transaction, line 310, in commit
Module transaction._transaction, line 301, in commit
Module transaction._transaction, line 446, in _commitResources
Module transaction._transaction, line 420, in _commitResources
Module ZODB.Connection, line 498, in commit
Module ZODB.Connection, line 547, in _commit
Module ZODB.Connection, line 579, in _store_objects
Module ZODB.serialize, line 419, in serialize
Module ZODB.serialize, line 428, in _dump
PicklingError: Can't pickle <class 'plone.app.drafts.interfaces.IDraftable'>: import of module plone.app.drafts.interfaces failed

The site used to have Mosaic and therefore also had p.a.drafts. I encountered recurssion errors with the drafts module so I uninstalled it (and Mosaic). However, sometimes I get the above error.

I understand that this is because ZODB is looking for the module. I can make the module available again (but not activate it) and my error would disappear. What I do not understand is why the ZODB is still looking for it? I have deactivated and uninstalled the product, the behavior has been removed from the FTI, a recatalog has been done, and the portal_drafts storage has been deleted.

Do I have an item or items in the path that has been marked with the behavior in the past? Are the items in the path also updated?

How do I debug and remove this persistent interface?

My site is Plone 5.1.4 and p.a.drafts is version 1.1.2

When does the error/traceback occur? From the url I guess when you save something with a newsletter?

One source of unexplainable import error for code and objects I have seen in the past is the history storage. If you trigger listing of previous versions of an item this can sometimes wake up python object from the ZODB with 'old' dependencies. But that doesn't seem to be the case here.

When does the error/traceback occur? From the url I guess when you save something with a newsletter ?

Yes but It is an easyform. It also occurs when adding an item in a path. However, in a test server with the same data and path, the error is not triggered (with the add; not tried on the edit/save).

One source of unexplainable import error for code and objects I have seen in the past is the history storage. If you trigger listing of previous versions of an item this can sometimes wake up python object from the ZODB with 'old' dependencies. But that doesn't seem to be the case here.

Hmm. I recently packed the database but left 90 days of history. I will try to pack again and remove all history.

BTW, it may not be related at all but in production that has the drafts error, I am seeing ZODB ConflictErrors as well and the instance is persistently eating up CPU. The conflict error is not in the dev server (bec. it is not used). Any possible relation?

Thanks.

Plone Foundation Code of Conduct