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