Version 14 Update: Workspace

My app was created and developed on ERPNext Version 13. It is working fine with the latest version 13 update. But it is not installing on Version 14-beta. The error is:

Installing test_app...
Updating DocTypes for test_app  : [========================================] 100%
An error occurred while installing test_app: Content data shoud be a list
Traceback (most recent call last):
  File "apps/frappe/frappe/desk/doctype/workspace/workspace.py", line 22, in validate
    if not isinstance(loads(self.content), list):
  File "/usr/lib/python3.8/json/__init__.py", line 341, in loads
    raise TypeError(f'the JSON object must be str, bytes or bytearray, '
TypeError: the JSON object must be str, bytes or bytearray, not NoneType
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
  File "apps/frappe/frappe/commands/site.py", line 344, in install_app
    _install_app(app, verbose=context.verbose)
  File "apps/frappe/frappe/installer.py", line 264, in install_app
    sync_fixtures(name)
  File "apps/frappe/frappe/utils/fixtures.py", line 24, in sync_fixtures
    import_doc(frappe.get_app_path(app, "fixtures", fname))
  File "apps/frappe/frappe/core/doctype/data_import/data_import.py", line 216, in import_doc
    import_file_by_path(
  File "apps/frappe/frappe/modules/import_file.py", line 132, in import_file_by_path
    import_doc(
  File "apps/frappe/frappe/modules/import_file.py", line 237, in import_doc
    doc.insert()
  File "apps/frappe/frappe/model/document.py", line 233, in insert
    self.run_before_save_methods()
  File "apps/frappe/frappe/model/document.py", line 973, in run_before_save_methods
    self.run_method("validate")
  File "apps/frappe/frappe/model/document.py", line 870, in run_method
    out = Document.hook(fn)(self, *args, **kwargs)
  File "apps/frappe/frappe/model/document.py", line 1166, in composer
    return composed(self, method, *args, **kwargs)
  File "apps/frappe/frappe/model/document.py", line 1149, in runner
    add_to_return_value(self, fn(self, *args, **kwargs))
  File "apps/frappe/frappe/model/document.py", line 867, in fn
    return method_object(*args, **kwargs)
  File "apps/frappe/frappe/desk/doctype/workspace/workspace.py", line 25, in validate
    frappe.throw(_("Content data shoud be a list"))
  File "apps/frappe/frappe/__init__.py", line 448, in throw
    msgprint(msg, raise_exception=exc, title=title, indicator='red', is_minimizable=is_minimizable, wide=wide, as_list=as_list)
  File "apps/frappe/frappe/__init__.py", line 427, in msgprint
    _raise_exception()
  File "apps/frappe/frappe/__init__.py", line 382, in _raise_exception
    raise raise_exception(msg)
frappe.exceptions.ValidationError: Content data shoud be a list

The app installed once I removed all my workspace.json files, that caused my UI to break though. Can anyone suggest what changes should I make?

It looks like there is a difference in the workspace data structure between version-13 and develop. Most likely you will have to recreate your workspace in develop branch and export the workspace to your custom app again.

Yes!
Actually there is a new key-value pair named “content”. It is a list containing all data about the workspace. That is missing.