Try ERPNext Buy Support Partners Foundation

Error on bench update and am confused - V11 patch NestedSetRecursionError: Item cannot be added to its own descendents

hi, am trying to update my system and am getting the below error…

kindly help

Already up-to-date.
INFO:bench.utils:find . -name “*.pyc” -delete
Updating Python libraries…
INFO:bench.utils:./env/bin/pip install --upgrade pip
Requirement already up-to-date: pip in ./env/lib/python2.7/site-packages (18.0)
INFO:bench.utils:./env/bin/pip install -q -r /home/frappe/.bench/requirements.txt
INFO:bench.utils:./env/bin/pip install -q -r ./apps/erpnext/requirements.txt
INFO:bench.utils:./env/bin/pip install -q -r ./apps/frappe/requirements.txt
Updating node packages…
INFO:bench.utils:yarn install
yarn install v1.6.0
[1/4] Resolving packages…
success Already up-to-date.
Done in 0.60s.
Backing up sites…
Patching sites…
Migrating fr.jaydcosmetics.co.ke
Executing erpnext.patches.v11_0.merge_land_unit_with_location in fr.jaydcosmetics.co.ke (523db71e0e0fc041)
Traceback (most recent call last):
File “/usr/lib/python2.7/runpy.py”, line 174, in _run_module_as_main
main”, fname, loader, pkg_name)
File “/usr/lib/python2.7/runpy.py”, line 72, in _run_code
exec code in run_globals
File “/home/frappe/frappe-bench/apps/frappe/frappe/utils/bench_helper.py”, line 97, in
main()
File “/home/frappe/frappe-bench/apps/frappe/frappe/utils/bench_helper.py”, line 18, in main
click.Group(commands=commands)(prog_name=‘bench’)
File “/home/frappe/frappe-bench/env/local/lib/python2.7/site-packages/click/core.py”, line 722, in call
return self.main(*args, **kwargs)
File “/home/frappe/frappe-bench/env/local/lib/python2.7/site-packages/click/core.py”, line 697, in main
rv = self.invoke(ctx)
File “/home/frappe/frappe-bench/env/local/lib/python2.7/site-packages/click/core.py”, line 1066, in invoke
return _process_result(sub_ctx.command.invoke(sub_ctx))
File “/home/frappe/frappe-bench/env/local/lib/python2.7/site-packages/click/core.py”, line 1066, in invoke
return _process_result(sub_ctx.command.invoke(sub_ctx))
File “/home/frappe/frappe-bench/env/local/lib/python2.7/site-packages/click/core.py”, line 895, in invoke
return ctx.invoke(self.callback, **ctx.params)
File “/home/frappe/frappe-bench/env/local/lib/python2.7/site-packages/click/core.py”, line 535, in invoke
return callback(*args, **kwargs)
File “/home/frappe/frappe-bench/env/local/lib/python2.7/site-packages/click/decorators.py”, line 17, in new_func
return f(get_current_context(), *args, **kwargs)
File “/home/frappe/frappe-bench/apps/frappe/frappe/commands/init.py”, line 25, in _func
ret = f(frappe.dict(ctx.obj), *args, **kwargs)
File “/home/frappe/frappe-bench/apps/frappe/frappe/commands/site.py”, line 222, in migrate
migrate(context.verbose, rebuild_website=rebuild_website)
File “/home/frappe/frappe-bench/apps/frappe/frappe/migrate.py”, line 39, in migrate
frappe.modules.patch_handler.run_all()
File “/home/frappe/frappe-bench/apps/frappe/frappe/modules/patch_handler.py”, line 29, in run_all
if not run_single(patchmodule = patch):
File “/home/frappe/frappe-bench/apps/frappe/frappe/modules/patch_handler.py”, line 63, in run_single
return execute_patch(patchmodule, method, methodargs)
File “/home/frappe/frappe-bench/apps/frappe/frappe/modules/patch_handler.py”, line 83, in execute_patch
frappe.get_attr(patchmodule.split()[0] + “.execute”)()
File “/home/frappe/frappe-bench/apps/erpnext/erpnext/patches/v11_0/merge_land_unit_with_location.py”, line 53, in execute
}).insert(ignore_permissions=True)
File “/home/frappe/frappe-bench/apps/frappe/frappe/model/document.py”, line 249, in insert
self.run_post_save_methods()
File “/home/frappe/frappe-bench/apps/frappe/frappe/model/document.py”, line 898, in run_post_save_methods
self.run_method(“on_update”)
File “/home/frappe/frappe-bench/apps/frappe/frappe/model/document.py”, line 765, in run_method
out = Document.hook(fn)(self, *args, **kwargs)
File “/home/frappe/frappe-bench/apps/frappe/frappe/model/document.py”, line 1041, in composer
return composed(self, method, *args, **kwargs)
File “/home/frappe/frappe-bench/apps/frappe/frappe/model/document.py”, line 1024, in runner
add_to_return_value(self, fn(self, *args, **kwargs))
File “/home/frappe/frappe-bench/apps/frappe/frappe/model/document.py”, line 759, in
fn = lambda self, *args, **kwargs: getattr(self, method)(*args, **kwargs)
File “/home/frappe/frappe-bench/apps/erpnext/erpnext/assets/doctype/location/location.py”, line 30, in on_update
NestedSet.on_update(self)
File “/home/frappe/frappe-bench/apps/frappe/frappe/utils/nestedset.py”, line 185, in on_update
update_nsm(self)
File “/home/frappe/frappe-bench/apps/frappe/frappe/utils/nestedset.py”, line 42, in update_nsm
update_move_node(doc, pf)
File “/home/frappe/frappe-bench/apps/frappe/frappe/utils/nestedset.py”, line 94, in update_move_node
validate_loop(doc.doctype, doc.name, new_parent.lft, new_parent.rgt)
File “/home/frappe/frappe-bench/apps/frappe/frappe/utils/nestedset.py”, line 181, in validate_loop
frappe.throw(
(“Item cannot be added to its own descendents”), NestedSetRecursionError)
File “/home/frappe/frappe-bench/apps/frappe/frappe/init.py”, line 339, in throw
msgprint(msg, raise_exception=exc, title=title, indicator=‘red’)
File “/home/frappe/frappe-bench/apps/frappe/frappe/init.py”, line 325, in msgprint
_raise_exception()
File “/home/frappe/frappe-bench/apps/frappe/frappe/init.py”, line 298, in _raise_exception
raise raise_exception(msg)
frappe.utils.nestedset.NestedSetRecursionError: Item cannot be added to its own descendents
root@vultr:/home/frappe/frappe-bench#

am stillstrugling with this one… can any one help me on this? kindly

how to solve this error

You seem to be logged in as root user, instead of as user frappe (or the installation user you chose)

I did cd /home/frappe/frappe-bench then did bench update and got that error…also bench migrate is not working too…

getting the same error even after running in frappe user…

Migrating fr.jaydcosmetics.co.ke
Executing erpnext.patches.v11_0.merge_land_unit_with_location in fr.jaydcosmetics.co.ke (523db71e0e0fc041)
Traceback (most recent call last):
File “/usr/lib/python2.7/runpy.py”, line 174, in _run_module_as_main
main”, fname, loader, pkg_name)
File “/usr/lib/python2.7/runpy.py”, line 72, in _run_code
exec code in run_globals
File “/home/frappe/frappe-bench/apps/frappe/frappe/utils/bench_helper.py”, line 97, in
main()
File “/home/frappe/frappe-bench/apps/frappe/frappe/utils/bench_helper.py”, line 18, in main
click.Group(commands=commands)(prog_name=‘bench’)
File “/home/frappe/frappe-bench/env/local/lib/python2.7/site-packages/click/core.py”, line 722, in call
return self.main(*args, **kwargs)
File “/home/frappe/frappe-bench/env/local/lib/python2.7/site-packages/click/core.py”, line 697, in main
rv = self.invoke(ctx)
File “/home/frappe/frappe-bench/env/local/lib/python2.7/site-packages/click/core.py”, line 1066, in invoke
return _process_result(sub_ctx.command.invoke(sub_ctx))
File “/home/frappe/frappe-bench/env/local/lib/python2.7/site-packages/click/core.py”, line 1066, in invoke
return _process_result(sub_ctx.command.invoke(sub_ctx))
File “/home/frappe/frappe-bench/env/local/lib/python2.7/site-packages/click/core.py”, line 895, in invoke
return ctx.invoke(self.callback, **ctx.params)
File “/home/frappe/frappe-bench/env/local/lib/python2.7/site-packages/click/core.py”, line 535, in invoke
return callback(*args, **kwargs)
File “/home/frappe/frappe-bench/env/local/lib/python2.7/site-packages/click/decorators.py”, line 17, in new_func
return f(get_current_context(), *args, **kwargs)
File “/home/frappe/frappe-bench/apps/frappe/frappe/commands/init.py”, line 25, in _func
ret = f(frappe.dict(ctx.obj), *args, **kwargs)
File “/home/frappe/frappe-bench/apps/frappe/frappe/commands/site.py”, line 222, in migrate
migrate(context.verbose, rebuild_website=rebuild_website)
File “/home/frappe/frappe-bench/apps/frappe/frappe/migrate.py”, line 39, in migrate
frappe.modules.patch_handler.run_all()
File “/home/frappe/frappe-bench/apps/frappe/frappe/modules/patch_handler.py”, line 29, in run_all
if not run_single(patchmodule = patch):
File “/home/frappe/frappe-bench/apps/frappe/frappe/modules/patch_handler.py”, line 63, in run_single
return execute_patch(patchmodule, method, methodargs)
File “/home/frappe/frappe-bench/apps/frappe/frappe/modules/patch_handler.py”, line 83, in execute_patch
frappe.get_attr(patchmodule.split()[0] + “.execute”)()
File “/home/frappe/frappe-bench/apps/erpnext/erpnext/patches/v11_0/merge_land_unit_with_location.py”, line 53, in execute
}).insert(ignore_permissions=True)
File “/home/frappe/frappe-bench/apps/frappe/frappe/model/document.py”, line 249, in insert
self.run_post_save_methods()
File “/home/frappe/frappe-bench/apps/frappe/frappe/model/document.py”, line 898, in run_post_save_methods
self.run_method(“on_update”)
File “/home/frappe/frappe-bench/apps/frappe/frappe/model/document.py”, line 765, in run_method
out = Document.hook(fn)(self, *args, **kwargs)
File “/home/frappe/frappe-bench/apps/frappe/frappe/model/document.py”, line 1041, in composer
return composed(self, method, *args, **kwargs)
File “/home/frappe/frappe-bench/apps/frappe/frappe/model/document.py”, line 1024, in runner
add_to_return_value(self, fn(self, *args, **kwargs))
File “/home/frappe/frappe-bench/apps/frappe/frappe/model/document.py”, line 759, in
fn = lambda self, *args, **kwargs: getattr(self, method)(*args, **kwargs)
File “/home/frappe/frappe-bench/apps/erpnext/erpnext/assets/doctype/location/location.py”, line 30, in on_update
NestedSet.on_update(self)
File “/home/frappe/frappe-bench/apps/frappe/frappe/utils/nestedset.py”, line 185, in on_update
update_nsm(self)
File “/home/frappe/frappe-bench/apps/frappe/frappe/utils/nestedset.py”, line 42, in update_nsm
update_move_node(doc, pf)
File “/home/frappe/frappe-bench/apps/frappe/frappe/utils/nestedset.py”, line 94, in update_move_node
validate_loop(doc.doctype, doc.name, new_parent.lft, new_parent.rgt)
File “/home/frappe/frappe-bench/apps/frappe/frappe/utils/nestedset.py”, line 181, in validate_loop
frappe.throw(
(“Item cannot be added to its own descendents”), NestedSetRecursionError)
File “/home/frappe/frappe-bench/apps/frappe/frappe/init.py”, line 339, in throw
msgprint(msg, raise_exception=exc, title=title, indicator=‘red’)
File “/home/frappe/frappe-bench/apps/frappe/frappe/init.py”, line 325, in msgprint
_raise_exception()
File “/home/frappe/frappe-bench/apps/frappe/frappe/init.py”, line 298, in _raise_exception
raise raise_exception(msg)
frappe.utils.nestedset.NestedSetRecursionError: Item cannot be added to its own descendents
frappe@vultr:~/frappe-bench$

kindly anyone help this is driving me nuts

reported this issue to at https://github.com/frappe/erpnext/issues/15294 kindly guys help cant even login now

“kindly anyone help this is driving me nuts”

Hi

Why not use the forum to help yourself https://discuss.erpnext.com/search?q=frappe.utils.nestedset.NestedSetRecursionError%3A%20Item%20cannot%20be%20added%20to%20its%20own%20descendents

root@ and also the # at the end of that prompt line, indicates that you are logged in as root user, instead of as user frappe. This will not work properly. Log in as user frappe

so you have to:
$su frappe
enter frappe password
run all bench commands from /home/frappe/frappe-bench/

thank you for your reply… but as you can see I ahve also tried under su frappe and still getting the same error…

Backing up sites…
Patching sites…
Migrating fr.jaydcosmetics.co.ke
Executing erpnext.patches.v11_0.merge_land_unit_with_location in fr.jaydcosmetics.co.ke (523db71e0e0fc041)
Traceback (most recent call last):
File “/usr/lib/python2.7/runpy.py”, line 174, in _run_module_as_main
main”, fname, loader, pkg_name)
File “/usr/lib/python2.7/runpy.py”, line 72, in _run_code
exec code in run_globals
File “/home/frappe/frappe-bench/apps/frappe/frappe/utils/bench_helper.py”, line 97, in
main()
File “/home/frappe/frappe-bench/apps/frappe/frappe/utils/bench_helper.py”, line 18, in main
click.Group(commands=commands)(prog_name=‘bench’)
File “/home/frappe/frappe-bench/env/local/lib/python2.7/site-packages/click/core.py”, line 722, in call
return self.main(*args, **kwargs)
File “/home/frappe/frappe-bench/env/local/lib/python2.7/site-packages/click/core.py”, line 697, in main
rv = self.invoke(ctx)
File “/home/frappe/frappe-bench/env/local/lib/python2.7/site-packages/click/core.py”, line 1066, in invoke
return _process_result(sub_ctx.command.invoke(sub_ctx))
File “/home/frappe/frappe-bench/env/local/lib/python2.7/site-packages/click/core.py”, line 1066, in invoke
return _process_result(sub_ctx.command.invoke(sub_ctx))
File “/home/frappe/frappe-bench/env/local/lib/python2.7/site-packages/click/core.py”, line 895, in invoke
return ctx.invoke(self.callback, **ctx.params)
File “/home/frappe/frappe-bench/env/local/lib/python2.7/site-packages/click/core.py”, line 535, in invoke
return callback(*args, **kwargs)
File “/home/frappe/frappe-bench/env/local/lib/python2.7/site-packages/click/decorators.py”, line 17, in new_func
return f(get_current_context(), *args, **kwargs)
File “/home/frappe/frappe-bench/apps/frappe/frappe/commands/init.py”, line 25, in _func
ret = f(frappe.dict(ctx.obj), *args, **kwargs)
File “/home/frappe/frappe-bench/apps/frappe/frappe/commands/site.py”, line 222, in migrate
migrate(context.verbose, rebuild_website=rebuild_website)
File “/home/frappe/frappe-bench/apps/frappe/frappe/migrate.py”, line 39, in migrate
frappe.modules.patch_handler.run_all()
File “/home/frappe/frappe-bench/apps/frappe/frappe/modules/patch_handler.py”, line 29, in run_all
if not run_single(patchmodule = patch):
File “/home/frappe/frappe-bench/apps/frappe/frappe/modules/patch_handler.py”, line 63, in run_single
return execute_patch(patchmodule, method, methodargs)
File “/home/frappe/frappe-bench/apps/frappe/frappe/modules/patch_handler.py”, line 83, in execute_patch
frappe.get_attr(patchmodule.split()[0] + “.execute”)()
File “/home/frappe/frappe-bench/apps/erpnext/erpnext/patches/v11_0/merge_land_unit_with_location.py”, line 53, in execute
}).insert(ignore_permissions=True)
File “/home/frappe/frappe-bench/apps/frappe/frappe/model/document.py”, line 249, in insert
self.run_post_save_methods()
File “/home/frappe/frappe-bench/apps/frappe/frappe/model/document.py”, line 906, in run_post_save_methods
self.run_method(“on_update”)
File “/home/frappe/frappe-bench/apps/frappe/frappe/model/document.py”, line 773, in run_method
out = Document.hook(fn)(self, *args, **kwargs)
File “/home/frappe/frappe-bench/apps/frappe/frappe/model/document.py”, line 1049, in composer
return composed(self, method, *args, **kwargs)
File “/home/frappe/frappe-bench/apps/frappe/frappe/model/document.py”, line 1032, in runner
add_to_return_value(self, fn(self, *args, **kwargs))
File “/home/frappe/frappe-bench/apps/frappe/frappe/model/document.py”, line 767, in
fn = lambda self, *args, **kwargs: getattr(self, method)(*args, **kwargs)
File “/home/frappe/frappe-bench/apps/erpnext/erpnext/assets/doctype/location/location.py”, line 30, in on_update
NestedSet.on_update(self)
File “/home/frappe/frappe-bench/apps/frappe/frappe/utils/nestedset.py”, line 185, in on_update
update_nsm(self)
File “/home/frappe/frappe-bench/apps/frappe/frappe/utils/nestedset.py”, line 42, in update_nsm
update_move_node(doc, pf)
File “/home/frappe/frappe-bench/apps/frappe/frappe/utils/nestedset.py”, line 94, in update_move_node
validate_loop(doc.doctype, doc.name, new_parent.lft, new_parent.rgt)
File “/home/frappe/frappe-bench/apps/frappe/frappe/utils/nestedset.py”, line 181, in validate_loop
frappe.throw(
(“Item cannot be added to its own descendents”), NestedSetRecursionError)
File “/home/frappe/frappe-bench/apps/frappe/frappe/init.py”, line 339, in throw
msgprint(msg, raise_exception=exc, title=title, indicator=‘red’)
File “/home/frappe/frappe-bench/apps/frappe/frappe/init.py”, line 325, in msgprint
_raise_exception()
File “/home/frappe/frappe-bench/apps/frappe/frappe/init.py”, line 298, in _raise_exception
raise raise_exception(msg)
frappe.utils.nestedset.NestedSetRecursionError: Item cannot be added to its own descendents
frappe@vultr:~/frappe-bench$

am getting that error above… kindly help

thank you for your reply but under this thread am seeing only two issues… mine and the other one I had tried and couldn’t solve my issue.

That thread failed to help? Please outline what you tried, the result and what you don’t understand, so someone can help…the idea is you need to share ok?

You seem to have a malformed Item tree in v11 - to find out why, best for you to inspect the tree elements to discover the problem.

Say if you install this nifty tool, that may help on your quest?
Using Jupyter Notebook for testing

thank you,

that’s seems so technical for me… but one site is working properly but my site2 is not working…
not migrating on bench --site site2 migrate am getting that error but site1 migrates without any issues…

could multitenants be the issue here or…?

“that’s seems so technical for me”

Well yes unless you have some background, to support your own software is not for the faint of heart.

“could multitenants be the issue here or…?”

Very unlikely - the problem relates to the data that relates to that site alone.

Thank you all I had to drop the second site and now am running site1.local in my server only…

It wasn’t easy I appreciate your assistance all … Erpnext is the best community ever…

now my site is running smooth as there before

After testing is complete and v11 is officially released, hopefully your patch issue you will have been resolved.

It’s always good practice to test any update upgrade on a copy of your production instance to confirm or flush out issues.

1 Like