Logo cannot be replaced/uploaded after migration to Plone 5.2 Python 3

site_logo is still of type ASCII, not Bytes (as shown in portal_registry). A change of the type seems to be possible, is it harmless? Or is there another way to fix the problem?

No, the problem is that the plone.formwidget code - for some reason - expects the name of the uploaded file to be included with the bytes string:

 File "/home/ajung/.buildout/eggs/plone.app.viewletmanager-3.1.0-py3.7.egg/plone/app/viewletmanager/manager.py", line 110, in render
   html.append(viewlet.render())
 File "/home/ajung/.buildout/eggs/zope.browserpage-4.4.0-py3.7.egg/zope/browserpage/simpleviewclass.py", line 41, in __call__
   return self.index(*args, **kw)
 File "/home/ajung/.buildout/eggs/Zope-4.1.3-py3.7.egg/Products/Five/browser/pagetemplatefile.py", line 126, in __call__
   return self.__func__(__self__, *args, **kw)
 File "/home/ajung/.buildout/eggs/Zope-4.1.3-py3.7.egg/Products/Five/browser/pagetemplatefile.py", line 61, in __call__
   sourceAnnotations=getattr(debug_flags, 'sourceAnnotations', 0),
 File "/home/ajung/.buildout/eggs/zope.pagetemplate-4.4.1-py3.7.egg/zope/pagetemplate/pagetemplate.py", line 135, in pt_render
   strictinsert=0, sourceAnnotations=sourceAnnotations
 File "/home/ajung/.buildout/eggs/Zope-4.1.3-py3.7.egg/Products/PageTemplates/engine.py", line 88, in __call__
   return self.template.render(**kwargs)
 File "/home/ajung/.buildout/eggs/z3c.pt-3.2.0-py3.7.egg/z3c/pt/pagetemplate.py", line 173, in render
   return base_renderer(**context)
 File "/home/ajung/.buildout/eggs/Chameleon-3.6.2-py3.7.egg/chameleon/zpt/template.py", line 306, in render
   return super(PageTemplate, self).render(**_kw)
 File "/home/ajung/.buildout/eggs/Chameleon-3.6.2-py3.7.egg/chameleon/template.py", line 209, in render
   raise_with_traceback(exc, tb)
 File "/home/ajung/.buildout/eggs/Chameleon-3.6.2-py3.7.egg/chameleon/utils.py", line 75, in raise_with_traceback
   raise exc
 File "/home/ajung/.buildout/eggs/Chameleon-3.6.2-py3.7.egg/chameleon/template.py", line 187, in render
   self._render(stream, econtext, rcontext)
 File "164efffa5259aeca16174ee918668e39.py", line 105, in render
 File "/home/ajung/.buildout/eggs/z3c.pt-3.2.0-py3.7.egg/z3c/pt/expressions.py", line 70, in render_content_provider
   cp.update()
 File "/home/ajung/.buildout/eggs/zope.viewlet-4.2.1-py3.7.egg/zope/viewlet/manager.py", line 155, in update
   self._updateViewlets()
 File "/home/ajung/.buildout/eggs/zope.viewlet-4.2.1-py3.7.egg/zope/viewlet/manager.py", line 161, in _updateViewlets
   viewlet.update()
 File "/home/ajung/.buildout/eggs/plone.app.layout-3.4.0-py3.7.egg/plone/app/layout/viewlets/common.py", line 222, in update
   self.img_src = getSiteLogo()
 File "/home/ajung/.buildout/eggs/Products.CMFPlone-5.2.1-py3.7.egg/Products/CMFPlone/utils.py", line 776, in getSiteLogo
   filename, data = b64decode_file(settings.site_logo)
 File "/home/ajung/.buildout/eggs/plone.formwidget.namedfile-2.0.10-py3.7.egg/plone/formwidget/namedfile/converter.py", line 78, in b64decode_file
   filename, data = value.split(b';')
ValueError: too many values to unpack (expected 2)

Plone Foundation Code of Conduct