Bench --site erp.XXX migrate Error

Good Day Guys Any one face this error before ?
what is happen is i update woocommerceconnector app then the site went maintenance mood
i try Migrate bot no luck , maintenance_mode": 0 already but still no luck

Updating

The system is being updated. Please refresh again after a few moments.


Updating DocTypes for frappe        : [=====                                   ] 12%
Traceback (most recent call last):
  File "/usr/lib/python3.8/runpy.py", line 194, in _run_module_as_main
    return _run_code(code, main_globals, None,
  File "/usr/lib/python3.8/runpy.py", line 87, in _run_code
    exec(code, run_globals)
  File "/home/rhf500/frappe-bench/apps/frappe/frappe/utils/bench_helper.py", line 104, in <module>
    main()
  File "/home/rhf500/frappe-bench/apps/frappe/frappe/utils/bench_helper.py", line 19, in main
    click.Group(commands=commands)(prog_name='bench')
  File "/home/rhf500/frappe-bench/env/lib/python3.8/site-packages/click/core.py", line 829, in __call__
    return self.main(*args, **kwargs)
  File "/home/rhf500/frappe-bench/env/lib/python3.8/site-packages/click/core.py", line 782, in main
    rv = self.invoke(ctx)
  File "/home/rhf500/frappe-bench/env/lib/python3.8/site-packages/click/core.py", line 1259, in invoke
    return _process_result(sub_ctx.command.invoke(sub_ctx))
  File "/home/rhf500/frappe-bench/env/lib/python3.8/site-packages/click/core.py", line 1259, in invoke
    return _process_result(sub_ctx.command.invoke(sub_ctx))
  File "/home/rhf500/frappe-bench/env/lib/python3.8/site-packages/click/core.py", line 1066, in invoke
    return ctx.invoke(self.callback, **ctx.params)
  File "/home/rhf500/frappe-bench/env/lib/python3.8/site-packages/click/core.py", line 610, in invoke
    return callback(*args, **kwargs)
  File "/home/rhf500/frappe-bench/env/lib/python3.8/site-packages/click/decorators.py", line 21, in new_func
    return f(get_current_context(), *args, **kwargs)
  File "/home/rhf500/frappe-bench/apps/frappe/frappe/commands/__init__.py", line 27, in _func
    ret = f(frappe._dict(ctx.obj), *args, **kwargs)
  File "/home/rhf500/frappe-bench/apps/frappe/frappe/commands/site.py", line 306, in migrate
    migrate(
  File "/home/rhf500/frappe-bench/apps/frappe/frappe/migrate.py", line 72, in migrate
    frappe.model.sync.sync_all(verbose=verbose)
  File "/home/rhf500/frappe-bench/apps/frappe/frappe/model/sync.py", line 19, in sync_all
    sync_for(app, force, verbose=verbose, reset_permissions=reset_permissions)
  File "/home/rhf500/frappe-bench/apps/frappe/frappe/model/sync.py", line 70, in sync_for
    import_file_by_path(doc_path, force=force, ignore_version=True, reset_permissions=reset_permissions)
  File "/home/rhf500/frappe-bench/apps/frappe/frappe/modules/import_file.py", line 130, in import_file_by_path
    import_doc(
  File "/home/rhf500/frappe-bench/apps/frappe/frappe/modules/import_file.py", line 213, in import_doc
    doc = frappe.get_doc(docdict)
  File "/home/rhf500/frappe-bench/apps/frappe/frappe/__init__.py", line 891, in get_doc
    doc = frappe.model.document.get_doc(*args, **kwargs)
  File "/home/rhf500/frappe-bench/apps/frappe/frappe/model/document.py", line 75, in get_doc
    return controller(*args, **kwargs)
  File "/home/rhf500/frappe-bench/apps/frappe/frappe/model/document.py", line 122, in __init__
    super(Document, self).__init__(kwargs)
  File "/home/rhf500/frappe-bench/apps/frappe/frappe/model/base_document.py", line 82, in __init__
    self.update(d)
  File "/home/rhf500/frappe-bench/apps/frappe/frappe/model/base_document.py", line 113, in update
    self.set(key, value)
  File "/home/rhf500/frappe-bench/apps/frappe/frappe/model/base_document.py", line 160, in set
    self.extend(key, value)
  File "/home/rhf500/frappe-bench/apps/frappe/frappe/model/base_document.py", line 206, in extend
    self.append(key, v)
  File "/home/rhf500/frappe-bench/apps/frappe/frappe/model/base_document.py", line 198, in append
    raise ValueError(
ValueError: Document for field "field_order" attached to child table of "User Group" must be a dict or BaseDocument, not class 'str' (user_group_members)

i uninstall-the app and remove it then i try to install it again it install for other site on the same server but the site where the problem is started it giving me error


Installing woocommerceconnector...
An error occurred while installing woocommerceconnector:
('Module Def', 'WooCommerceConnector', IntegrityError(1062, "Duplicate entry 'WooCommerceConnector' for key 'PRIMARY'"))

error-snapshots


{
 "etype": "JSONDecodeError",
 "evalue": "JSONDecodeError('Expecting value: line 1 column 1 (char 0)')",
 "exception": {
  "args": [
   40,
   39,
   69,
   120,
   112,
   101,
   99,
   116,
   105,
   110,
   103,
   32,
   118,
   97,
   108,
   117,
   101,
   58,
   32,
   108,
   105,
   110,
   101,
   32,
   49,
   32,
   99,
   111,
   108,
   117,
   109,
   110,
   32,
   49,
   32,
   40,
   99,
   104,
   97,
   114,
   32,
   48,
   41,
   39,
   44,
   41
  ],
  "colno": [
   49
  ],
  "doc": [
   39,
   119,
   101,
   98,
   104,
   111,
   111,
   107,
   95,
   105,
   100,
   61,
   49,
   39
  ],
  "lineno": [
   49
  ],
  "msg": [
   39,
   69,
   120,
   112,
   101,
   99,
   116,
   105,
   110,
   103,
   32,
   118,
   97,
   108,
   117,
   101,
   39
  ],
  "pos": [
   48
  ],
  "with_traceback": [
   60,
   98,
   117,
   105,
   108,
   116,
   45,
   105,
   110,
   32,
   109,
   101,
   116,
   104,
   111,
   100,
   32,
   119,
   105,
   116,
   104,
   95,
   116,
   114,
   97,
   99,
   101,
   98,
   97,
   99,
   107,
   32,
   111,
   102,
   32,
   74,
   83,
   79,
   78,
   68,
   101,
   99,
   111,
   100,
   101,
   69,
   114,
   114,
   111,
   114,
   32,
   111,
   98,
   106,
   101,
   99,
   116,
   62
  ]
 },
 "frames": [
  {
   "call": "(request=<Request 'https://zzz.com/api/method/e....connectors.woocommerce_connection.order' [POST]>)",
   "dump": {
    "frappe. api": "<module 'frappe.api' from '/home/rhf500/frappe-bench/apps/frappe/frappe/api.py'>",
    "frappe.api. handle": "<function handle>",
    "global frappe": "<module 'frappe' from '/home/rhf500/frappe-bench/apps/frappe/frappe/__init__.py'>",
    "response": "None"
   },
   "file": "/home/rhf500/frappe-bench/apps/frappe/frappe/app.py",
   "func": "application",
   "lines": {
    "66": "",
    "67": "\t\telif request.path.startswith(\"/api/\"):",
    "68": "\t\t\tresponse = frappe.api.handle()",
    "69": "",
    "70": "\t\telif request.path.startswith('/backups'):"
   },
   "lnum": 68
  },
  {
   "call": "()",
   "dump": {
    "frappe. handler": "<module 'frappe.handler' from '/home/rhf500/frappe-bench/apps/frappe/frappe/handler.py'>",
    "frappe.handler. handle": "<function handle>",
    "global frappe": "<module 'frappe' from '/home/rhf500/frappe-bench/apps/frappe/frappe/__init__.py'>"
   },
   "file": "/home/rhf500/frappe-bench/apps/frappe/frappe/api.py",
   "func": "handle",
   "lines": {
    "53": "\tif call==\"method\":",
    "54": "\t\tfrappe.local.form_dict.cmd = doctype",
    "55": "\t\treturn frappe.handler.handle()",
    "56": "",
    "57": "\telif call==\"resource\":"
   },
   "lnum": 55
  },
  {
   "call": "()",
   "dump": {
    "cmd": "'erpnext.erpnext_integrations.connectors.woocommerce_connection.order'",
    "data": "None",
    "global execute_cmd": "<function execute_cmd>"
   },
   "file": "/home/rhf500/frappe-bench/apps/frappe/frappe/handler.py",
   "func": "handle",
   "lines": {
    "29": "",
    "30": "\tif cmd!='login':",
    "31": "\t\tdata = execute_cmd(cmd)",
    "32": "",
    "33": "\t# data can be an empty string or list which are valid responses"
   },
   "lnum": 31
  },
  {
   "call": "(cmd='erpnext.erpnext_integrations.connectors.woocommerce_connection.order', from_async=False)",
   "dump": {
    "frappe. call": "<function call>",
    "frappe. form_dict": "{'webhook_id': '1', 'cmd': 'erpnext.erpnext_integrations.connectors.woocommerce_connection.order'}",
    "global frappe": "<module 'frappe' from '/home/rhf500/frappe-bench/apps/frappe/frappe/__init__.py'>",
    "method": "<function order>"
   },
   "file": "/home/rhf500/frappe-bench/apps/frappe/frappe/handler.py",
   "func": "execute_cmd",
   "lines": {
    "66": "\t\tis_valid_http_method(method)",
    "67": "",
    "68": "\treturn frappe.call(method, **frappe.form_dict)",
    "69": "",
    "70": ""
   },
   "lnum": 68
  },
  {
   "call": "(fn=<function order>, *args=(), **kwargs={'cmd': 'erpnext.erpnext_integrations.connectors.woocommerce_connection.order', 'webhook_id': '1'})",
   "dump": {
    "args": "()",
    "fn": "<function order>",
    "newargs": "{'cmd': 'erpnext.erpnext_integrations.connectors.woocommerce_connection.order', 'webhook_id': '1'}"
   },
   "file": "/home/rhf500/frappe-bench/apps/frappe/frappe/__init__.py",
   "func": "call",
   "lines": {
    "1211": "\tnewargs = get_newargs(fn, kwargs)",
    "1212": "",
    "1213": "\treturn fn(*args, **newargs)",
    "1214": "",
    "1215": "def get_newargs(fn, kwargs):"
   },
   "lnum": 1213
  },
  {
   "call": "(*args=(), **kwargs={'cmd': 'erpnext.erpnext_integrations.connectors.woocommerce_connection.order', 'webhook_id': '1'})",
   "dump": {
    "). __str__": "<method-wrapper '__str__' of bytes object>",
    "error_message": "undefined",
    "frappe. get_traceback": "<function get_traceback>",
    "frappe. request": "<Request 'https://XXX.com/api/method/e....connectors.woocommerce_connection.order' [POST]>",
    "frappe.request. data": "b'webhook_id=1'",
    "global frappe": "<module 'frappe' from '/home/rhf500/frappe-bench/apps/frappe/frappe/__init__.py'>",
    "global json": "<module 'json' from '/usr/lib/python3.8/json/__init__.py'>",
    "json. loads": "<function loads>"
   },
   "file": "/home/rhf500/frappe-bench/apps/erpnext/erpnext/erpnext_integrations/connectors/woocommerce_connection.py",
   "func": "order",
   "lines": {
    "31": "\t\t_order(*args, **kwargs)",
    "32": "\texcept Exception:",
    "33": "\t\terror_message = frappe.get_traceback()+\"\\n\\n Request Data: \\n\"+json.loads(frappe.request.data).__str__()",
    "34": "\t\tfrappe.log_error(error_message, \"WooCommerce Error\")",
    "35": "\t\traise"
   },
   "lnum": 33
  },
  {
   "call": "(s='webhook_id=1', cls=None, object_hook=None, parse_float=None, parse_int=None, parse_constant=None, object_pairs_hook=None, **kw={})",
   "dump": {
    "_default_decoder. decode": "<bound method JSONDecoder.decode of <json.decoder.JSONDecoder object>>",
    "global _default_decoder": "<json.decoder.JSONDecoder object>",
    "s": "'webhook_id=1'"
   },
   "file": "/usr/lib/python3.8/json/__init__.py",
   "func": "loads",
   "lines": {
    "355": "            parse_int is None and parse_float is None and",
    "356": "            parse_constant is None and object_pairs_hook is None and not kw):",
    "357": "        return _default_decoder.decode(s)",
    "358": "    if cls is None:",
    "359": "        cls = JSONDecoder"
   },
   "lnum": 357
  },
  {
   "call": "(self=<json.decoder.JSONDecoder object>, s='webhook_id=1', _w=<built-in method match of re.Pattern object>)",
   "dump": {
    ").end": "undefined",
    "_w": "<built-in method match of re.Pattern object>",
    "end": "undefined",
    "idx": "undefined",
    "obj": "undefined",
    "s": "'webhook_id=1'",
    "self": "<json.decoder.JSONDecoder object>",
    "self. raw_decode": "<bound method JSONDecoder.raw_decode of <json.decoder.JSONDecoder object>>"
   },
   "file": "/usr/lib/python3.8/json/decoder.py",
   "func": "decode",
   "lines": {
    "335": "",
    "336": "        \"\"\"",
    "337": "        obj, end = self.raw_decode(s, idx=_w(s, 0).end())",
    "338": "        end = _w(s, end).end()",
    "339": "        if end != len(s):"
   },
   "lnum": 337
  },
  {
   "call": "(self=<json.decoder.JSONDecoder object>, s='webhook_id=1', idx=0)",
   "dump": {
    "err": "undefined",
    "global JSONDecodeError": "<class 'json.decoder.JSONDecodeError'>",
    "s": "'webhook_id=1'"
   },
   "file": "/usr/lib/python3.8/json/decoder.py",
   "func": "raw_decode",
   "lines": {
    "352": "        try:",
    "353": "            obj, end = self.scan_once(s, idx)",
    "354": "        except StopIteration as err:",
    "355": "            raise JSONDecodeError(\"Expecting value\", s, err.value) from None",
    "356": "        return obj, end"
   },
   "lnum": 355
  }
 ],
 "locals": {
  "idx": "0",
  "s": "webhook_id=1",
  "self": "<json.decoder.JSONDecoder object>"
 },
 "pyver": "Python 3.8.10: /home/rhf500/frappe-bench/env/bin/python3 (prefix: /home/rhf500/frappe-bench/env)",
 "timestamp": "2022-10-06 12:22:59.821179",
 "traceback": "Traceback (most recent call last):\n  File \"/home/rhf500/frappe-bench/apps/frappe/frappe/app.py\", line 68, in application\n    response = frappe.api.handle()\n  File \"/home/rhf500/frappe-bench/apps/frappe/frappe/api.py\", line 55, in handle\n    return frappe.handler.handle()\n  File \"/home/rhf500/frappe-bench/apps/frappe/frappe/handler.py\", line 31, in handle\n    data = execute_cmd(cmd)\n  File \"/home/rhf500/frappe-bench/apps/frappe/frappe/handler.py\", line 68, in execute_cmd\n    return frappe.call(method, **frappe.form_dict)\n  File \"/home/rhf500/frappe-bench/apps/frappe/frappe/__init__.py\", line 1213, in call\n    return fn(*args, **newargs)\n  File \"/home/rhf500/frappe-bench/apps/erpnext/erpnext/erpnext_integrations/connectors/woocommerce_connection.py\", line 33, in order\n    error_message = frappe.get_traceback()+\"\\n\\n Request Data: \\n\"+json.loads(frappe.request.data).__str__()\n  File \"/usr/lib/python3.8/json/__init__.py\", line 357, in loads\n    return _default_decoder.decode(s)\n  File \"/usr/lib/python3.8/json/decoder.py\", line 337, in decode\n    obj, end = self.raw_decode(s, idx=_w(s, 0).end())\n  File \"/usr/lib/python3.8/json/decoder.py\", line 355, in raw_decode\n    raise JSONDecodeError(\"Expecting value\", s, err.value) from None\njson.decoder.JSONDecodeError: Expecting value: line 1 column 1 (char 0)\n"
}

Your Ubuntu version ??

Ubuntu 20

bench update --reset use this code after bench --site {sitename} migrate command

i already try bench update --reset no luck
i reinstall new setup and upload the backup database everything back normal…

but after uploading the database system work but i cant install another extinction or plugins …
i keep getting error of missing data so i think i need to o through the database . or just export and import to new installation

thank you any way :slight_smile: