ERPNext 14 not working after bench update reset

nformation about bug
ERPNext 14 not working after bench update reset
TypeError: ‘str’ object does not support item assignment

Module
other

Version
Frappe version - 14.7.0
Erpnext version - 14.1.2

Installation method
manual install

Relevant log output / Stack trace / Full Error Message.
ubuntu@vps-f5abad2:~$ cd /home/ubuntu/frappe-bench/apps/frappe/
ubuntu@vps-f5abad2:~/frappe-bench/apps/frappe$ bench update --reset --no-backup
remote: Total 0 (delta 0), reused 0 (delta 0), pack-reused 0
From GitHub - frappe/frappe: Low code web framework for real world applications, in Python and Javascript

  • branch version-14 → FETCH_HEAD
    Updating apps source…
    $ git fetch --depth=1 --no-tags upstream version-14
    remote: Total 0 (delta 0), reused 0 (delta 0), pack-reused 0
    From GitHub - frappe/frappe: Low code web framework for real world applications, in Python and Javascript
  • branch version-14 → FETCH_HEAD
    $ git reset --hard upstream/version-14
    HEAD is now at 6fe86b467c chore(release): Bumped to Version 14.7.0
    $ git reflog expire --all
    $ git gc --prune=all
    Enumerating objects: 325904, done.
    Counting objects: 100% (325904/325904), done.
    Delta compression using up to 2 threads
    Compressing objects: 100% (70737/70737), done.
    Writing objects: 100% (325904/325904), done.
    Total 325904 (delta 253564), reused 325904 (delta 253564), pack-reused 0
    Checking connectivity: 325904, done.
    $ find . -name “*.pyc” -delete
    $ git fetch --depth=1 --no-tags upstream version-14
    remote: Total 0 (delta 0), reused 0 (delta 0), pack-reused 0
    From GitHub - frappe/erpnext: Free and Open Source Enterprise Resource Planning (ERP)
  • branch version-14 → FETCH_HEAD
    $ git reset --hard upstream/version-14
    HEAD is now at 14e5f23 chore(release): Bumped to Version 14.1.2
    $ git reflog expire --all
    $ git gc --prune=all
    Enumerating objects: 5061, done.
    Counting objects: 100% (5061/5061), done.
    Delta compression using up to 2 threads
    Compressing objects: 100% (3680/3680), done.
    Writing objects: 100% (5061/5061), done.
    Total 5061 (delta 1150), reused 5061 (delta 1150), pack-reused 0
    $ find . -name “*.pyc” -delete
    $ git fetch --depth=1 --no-tags upstream develop
    remote: Total 0 (delta 0), reused 0 (delta 0), pack-reused 0
    From GitHub - frappe/payments: A payments app for frappe
  • branch develop → FETCH_HEAD
    $ git reset --hard upstream/develop
    HEAD is now at 8637be4 Merge pull request #3 from phot0n/add-linter
    $ git reflog expire --all
    $ git gc --prune=all
    Enumerating objects: 84, done.
    Counting objects: 100% (84/84), done.
    Delta compression using up to 2 threads
    Compressing objects: 100% (66/66), done.
    Writing objects: 100% (84/84), done.
    Total 84 (delta 12), reused 84 (delta 12), pack-reused 0
    $ find . -name “*.pyc” -delete
    Setting up requirements…
    $ /home/ubuntu/frappe-bench/env/bin/python -m pip install --quiet --upgrade pip
    Installing 3 applications…
    Installing frappe
    $ /home/ubuntu/frappe-bench/env/bin/python -m pip install --quiet --upgrade -e /home/ubuntu/frappe-bench/apps/frappe
    $ yarn install
    yarn install v1.22.19
    [1/5] Validating package.json…
    [2/5] Resolving packages…
    success Already up-to-date.
    Done in 0.48s.
    Installing erpnext
    $ /home/ubuntu/frappe-bench/env/bin/python -m pip install --quiet --upgrade -e /home/ubuntu/frappe-bench/apps/erpnext
    $ yarn install
    yarn install v1.22.19
    [1/4] Resolving packages…
    success Already up-to-date.
    Done in 0.11s.
    Installing payments
    $ /home/ubuntu/frappe-bench/env/bin/python -m pip install --quiet --upgrade -e /home/ubuntu/frappe-bench/apps/payments
    Patching sites…
    Migrating erp.greenleafpacific.com
    Updating DocTypes for frappe : [========================================] 100%
    Updating DocTypes for erpnext : [========================================] 100%
    Executing erpnext.patches.v14_0.migrate_existing_lead_notes_as_per_the_new_format in erp.greenlafpacific.com (_03f9d53928a8e321)
    Updating Dashboard for frappe
    Updating Dashboard for erpnext
    Updating customizations for Address
    Updating customizations for Contact
    Building search index for erp.greenlafpacific.com
    Retrieving Routes : [========================================] 100%
    Building Index : [========================================] 100%
    Traceback (most recent call last):
    File “/usr/lib/python3.10/runpy.py”, line 196, in _run_module_as_main
    return _run_code(code, main_globals, None,
    File “/usr/lib/python3.10/runpy.py”, line 86, in _run_code
    exec(code, run_globals)
    File “/home/ubuntu/frappe-bench/apps/frappe/frappe/utils/bench_helper.py”, line 109, in
    main()
    File “/home/ubuntu/frappe-bench/apps/frappe/frappe/utils/bench_helper.py”, line 18, in main
    click.Group(commands=commands)(prog_name=“bench”)
    File “/home/ubuntu/frappe-bench/env/lib/python3.10/site-packages/click/core.py”, line 829, in call
    return self.main(*args, **kwargs)
    File “/home/ubuntu/frappe-bench/env/lib/python3.10/site-packages/click/core.py”, line 782, in main
    rv = self.invoke(ctx)
    File “/home/ubuntu/frappe-bench/env/lib/python3.10/site-packages/click/core.py”, line 1259, in invoke
    return _process_result(sub_ctx.command.invoke(sub_ctx))
    File “/home/ubuntu/frappe-bench/env/lib/python3.10/site-packages/click/core.py”, line 1259, in invoke
    return _process_result(sub_ctx.command.invoke(sub_ctx))
    File “/home/ubuntu/frappe-bench/env/lib/python3.10/site-packages/click/core.py”, line 1066, in invoke
    return ctx.invoke(self.callback, **ctx.params)
    File “/home/ubuntu/frappe-bench/env/lib/python3.10/site-packages/click/core.py”, line 610, in invoke
    return callback(*args, **kwargs)
    File “/home/ubuntu/frappe-bench/env/lib/python3.10/site-packages/click/decorators.py”, line 21, in new_func
    return f(get_current_context(), *args, **kwargs)
    File “/home/ubuntu/frappe-bench/apps/frappe/frappe/commands/init.py”, line 29, in _func
    ret = f(frappe._dict(ctx.obj), *args, **kwargs)
    File “/home/ubuntu/frappe-bench/apps/frappe/frappe/commands/site.py”, line 549, in migrate
    SiteMigration(
    File “/home/ubuntu/frappe-bench/apps/frappe/frappe/migrate.py”, line 172, in run
    self.run_schema_updates()
    File “/home/ubuntu/frappe-bench/apps/frappe/frappe/migrate.py”, line 40, in wrapper
    ret = method(*args, **kwargs)
    File “/home/ubuntu/frappe-bench/apps/frappe/frappe/migrate.py”, line 113, in run_schema_updates
    frappe.modules.patch_handler.run_all(
    File “/home/ubuntu/frappe-bench/apps/frappe/frappe/modules/patch_handler.py”, line 75, in run_all
    run_patch(patch)
    File “/home/ubuntu/frappe-bench/apps/frappe/frappe/modules/patch_handler.py”, line 62, in run_patch
    if not run_single(patchmodule=patch):
    File “/home/ubuntu/frappe-bench/apps/frappe/frappe/modules/patch_handler.py”, line 150, in run_single
    return execute_patch(patchmodule, method, methodargs)
    File “/home/ubuntu/frappe-bench/apps/frappe/frappe/modules/patch_handler.py”, line 185, in execute_patch
    _patch()
    File “/home/ubuntu/frappe-bench/apps/erpnext/erpnext/patches/v14_0/migrate_existing_lead_notes_as_per_the_new_format.py”, line 19, in execute
    doc = frappe.get_doc(doctype, d.name)
    File “/home/ubuntu/frappe-bench/apps/frappe/frappe/init.py”, line 1190, in get_doc
    doc = frappe.model.document.get_doc(*args, **kwargs)
    File “/home/ubuntu/frappe-bench/apps/frappe/frappe/model/document.py”, line 74, in get_doc
    return controller(*args, **kwargs)
    File “/home/ubuntu/frappe-bench/apps/erpnext/erpnext/controllers/accounts_controller.py”, line 80, in init
    super(AccountsController, self).init(*args, **kwargs)
    File “/home/ubuntu/frappe-bench/apps/frappe/frappe/model/document.py”, line 106, in init
    self.load_from_db()
    File “/home/ubuntu/frappe-bench/apps/frappe/frappe/model/document.py”, line 152, in load_from_db
    super().init(d)
    File “/home/ubuntu/frappe-bench/apps/frappe/frappe/model/base_document.py”, line 109, in init
    self.update(d)
    File “/home/ubuntu/frappe-bench/apps/frappe/frappe/model/base_document.py”, line 156, in update
    self.set(key, value)
    File “/home/ubuntu/frappe-bench/apps/frappe/frappe/model/base_document.py”, line 208, in set
    self.extend(key, value)
    File “/home/ubuntu/frappe-bench/apps/frappe/frappe/model/base_document.py”, line 249, in extend
    self.append(key, v)
    File “/home/ubuntu/frappe-bench/apps/frappe/frappe/model/base_document.py”, line 234, in append
    value = self._init_child(value, key)
    File “/home/ubuntu/frappe-bench/apps/frappe/frappe/model/base_document.py”, line 262, in _init_child
    value[“doctype”] = doctype
    TypeError: ‘str’ object does not support item assignment
    ubuntu@vps-f5abad2:~/frappe-bench/apps/frappe$

There is issue with this patch

erpnext.patches.v14_0.migrate_existing_lead_notes_as_per_the_new_format

I remove this patch from patches.txt from erpnext under apps folder and then ran migration so the issue was solved

Sorry, could you please give a full path to the file patches.txt


under apps/erpnext/erpnext/patches.txt

yes but it returns back if I run bench update --reset
and doesn’t allow to do bench update

run migrate command after that not bench update --reset
command is below

bench --site [site-name] migrate

Thank you Sir
I have passed this info to our admin
I will message here on result