TypeError on class plone.openid.store.ZopeStore

In one customer site I see zillions of messages like this one on the event log:

2017-11-17T10:39:56 ERROR ZODB.Connection Couldn't load state for 0x130e
Traceback (most recent call last):
  File "/opt/plone/buildout/portal/eggs/ZODB3-3.10.5-py2.7-linux-x86_64.egg/ZODB/Connection.py", line 860, in setstate
  File "/opt/plone/buildout/portal/eggs/ZODB3-3.10.5-py2.7-linux-x86_64.egg/ZODB/Connection.py", line 914, in _setstate
    self._reader.setGhostState(obj, p)
  File "/opt/plone/buildout/portal/eggs/ZODB3-3.10.5-py2.7-linux-x86_64.egg/ZODB/serialize.py", line 612, in setGhostState
    state = self.getState(pickle)
  File "/opt/plone/buildout/portal/eggs/ZODB3-3.10.5-py2.7-linux-x86_64.egg/ZODB/serialize.py", line 605, in getState
    return unpickler.load()
  File "/opt/plone/buildout/lib/python2.7/copy_reg.py", line 48, in _reconstructor
    obj = object.__new__(cls)
TypeError: ('object.__new__(ZopeStore) is not safe, use Persistence.Persistent.__new__()', <function _reconstructor at 0x7f55cbe819b0>, (<class 'plone.openid.store.ZopeStore'>, <type 'object'>, None))

I have never used plone.openid and I don't see it in the instance eggs; I don't know if the customer installed it and then somehow removed it.

have anybody seen this before?

any hints will be appreciated.

this is Python 2.7.6 and Plone 4.3.11.

The quick way is to provide an alias, see e.g.:


Then probably you can even find where that persisntent broken object is and remove it.

thanks! I think I'm going to include plone.openid on the buildout to see what happens.

I'm guessing that your installation used to depend on the Plone egg (which has as dependency on openid) and currently just on Products.CMFPlone (which doesnt').

Just add the egg to the instance:
plone.openid = 2.0.4
plone.app.openid = 2.0.4

1 Like