ComponentLookupError: (<InterfaceClass plone.registry.interfaces.IRegistry>, '')

I'm trying to upgrade a Plone Site from Plone 4.2 to 4.3, but fail with the error message shown above. The following version information is being displayed on the upgrade page:

Plone 4.3.19
Zope 2.13.29
Python 2.7.18 (default, Sep 19 2023, 07:10:59) [GCC 10.2.1 20210110]

The full traceback is

2025-08-21 13:08:31 INFO GenericSetup.rolemap Role / permission map imported.
2025-08-21 13:08:32 INFO GenericSetup.resourceregistry Javascript registry imported.
2025-08-21 13:08:32 INFO GenericSetup.archetypetool Archetype tool imported.
2025-08-21 13:08:32 INFO GenericSetup.plone.app.registry Cannot find registry
2025-08-21 13:08:32 ERROR GenericSetup Step pleonformgen has an invalid import handler
2025-08-21 13:08:32 INFO Products.GenericSetup.tool Profile Products.TinyMCE:TinyMCE upgraded to version ('4',).
2025-08-21 13:08:32 ERROR plone.app.upgrade Upgrade aborted. Error:
Traceback (most recent call last):
  File "/home/user/plone/43/www/buildout-cache/eggs/Products.CMFPlone-4.3.19-py2.7.egg/Products/CMFPlone/MigrationTool.py", line 285, in upgrade
    step['step'].doStep(setup)
  File "/home/user/plone/43/www/buildout-cache/eggs/Products.GenericSetup-1.8.10-py2.7.egg/Products/GenericSetup/upgrade.py", line 166, in doStep
    self.handler(tool)
  File "/home/user/plone/43/www/buildout-cache/eggs/plone.app.upgrade-1.4.6-py2.7.egg/plone/app/upgrade/v43/alphas.py", line 127, in to43alpha1
    upgradePloneAppTheming(context)
  File "/home/user/plone/43/www/buildout-cache/eggs/plone.app.upgrade-1.4.6-py2.7.egg/plone/app/upgrade/v43/alphas.py", line 98, in upgradePloneAppTheming
    registry = getUtility(IRegistry)
  File "/home/user/plone/43/www/buildout-cache/eggs/zope.component-3.9.5-py2.7.egg/zope/component/_api.py", line 169, in getUtility
    raise ComponentLookupError(interface, name)
ComponentLookupError: (<InterfaceClass plone.registry.interfaces.IRegistry>, '')
2025-08-21 13:08:33 INFO plone.app.upgrade End of upgrade path, main migration has finished.
2025-08-21 13:08:33 ERROR plone.app.upgrade The upgrade path did NOT reach current version.
2025-08-21 13:08:33 ERROR plone.app.upgrade Migration has failed
2025-08-21 13:08:33 INFO plone.app.upgrade Dry run selected, transaction aborted

I have tried different things, eg. forcing the TinyMCE plugin list to be empty near the start of it's upgrade_12_to_13 method to work around a NoneType error, but I'm a bit at a loss - without upgrading, I am getting the ComponentLookupError for the IRegistry interface all over the place, too.

I can reproduce this in a debug shell as follows:

>>> from zope.component import getUtility
>>> from plone.registry.interfaces import IRegistry
>>> registry = getUtility(IRegistry)
Traceback (most recent call last):
  File "<console>", line 1, in <module>
  File "/home/user/plone/43/www/buildout-cache/eggs/zope.component-3.9.5-py2.7.egg/zope/component/_api.py", line 169, in getUtility
    raise ComponentLookupError(interface, name)
ComponentLookupError: (<InterfaceClass plone.registry.interfaces.IRegistry>, '')

Btw, it would be nice if I could try the upgrade from the debug shell instead of the browser - I've run into browser timeouts before, with this large ZODB and the slow computer I have.