Error During Update [tuple index out of range]

Hi ,

Got the below error while updating an instance from V10 to V12

Executing erpnext.patches.v11_0.make_location_from_warehouse in sfw.wxxxxxxxxxxx.com (1bd3aaaaaa98)    
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 <module>
        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 764, in __call__
        return self.main(*args, **kwargs)
      File "/home/frappe/frappe-bench/env/local/lib/python2.7/site-packages/click/core.py", line 717, in main
        rv = self.invoke(ctx)
      File "/home/frappe/frappe-bench/env/local/lib/python2.7/site-packages/click/core.py", line 1137, 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 1137, 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 956, 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 555, 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 233, in migrate
        migrate(context.verbose, rebuild_website=rebuild_website, skip_failing=skip_failing)
      File "/home/frappe/frappe-bench/apps/frappe/frappe/migrate.py", line 48, in migrate
        frappe.modules.patch_handler.run_all(skip_failing)
      File "/home/frappe/frappe-bench/apps/frappe/frappe/modules/patch_handler.py", line 41, in run_all
        run_patch(patch)
      File "/home/frappe/frappe-bench/apps/frappe/frappe/modules/patch_handler.py", line 30, in run_patch
        if not run_single(patchmodule = patch):
      File "/home/frappe/frappe-bench/apps/frappe/frappe/modules/patch_handler.py", line 71, in run_single
        return execute_patch(patchmodule, method, methodargs)
      File "/home/frappe/frappe-bench/apps/frappe/frappe/modules/patch_handler.py", line 91, in execute_patch
        frappe.get_attr(patchmodule.split()[0] + ".execute")()
      File "/home/frappe/frappe-bench/apps/erpnext/erpnext/patches/v11_0/make_location_from_warehouse.py", line 23, in execute
        loc.save(ignore_permissions=True)
      File "/home/frappe/frappe-bench/apps/frappe/frappe/model/document.py", line 272, in save
        return self._save(*args, **kwargs)
      File "/home/frappe/frappe-bench/apps/frappe/frappe/model/document.py", line 295, in _save
        self.insert()
      File "/home/frappe/frappe-bench/apps/frappe/frappe/model/document.py", line 259, in insert
        self.run_post_save_methods()
      File "/home/frappe/frappe-bench/apps/frappe/frappe/model/document.py", line 919, in run_post_save_methods
        self.run_method("on_update")
      File "/home/frappe/frappe-bench/apps/frappe/frappe/model/document.py", line 787, in run_method
        out = Document.hook(fn)(self, *args, **kwargs)
      File "/home/frappe/frappe-bench/apps/frappe/frappe/model/document.py", line 1058, in composer
        return composed(self, method, *args, **kwargs)
      File "/home/frappe/frappe-bench/apps/frappe/frappe/model/document.py", line 1041, in runner
        add_to_return_value(self, fn(self, *args, **kwargs))
      File "/home/frappe/frappe-bench/apps/frappe/frappe/model/document.py", line 781, in <lambda>
        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 191, in on_update
        update_nsm(self)
      File "/home/frappe/frappe-bench/apps/frappe/frappe/utils/nestedset.py", line 40, in update_nsm
        update_add_node(doc, p or '', pf)
      File "/home/frappe/frappe-bench/apps/frappe/frappe/utils/nestedset.py", line 63, in update_add_node
        .format(doctype), parent)[0]
    IndexError: tuple index out of range

Any suggestions on how to resolve this will be greatly appreciated

Thanks

Hi all,

Still hoping for any ideas on how to resolve this…

Thanks

try

bench migrate-env python3

then try to update again

Hi @ammarhararah

Thanks for your suggestion but still got the same error!

Any ideas?

Still hoping for some assistance here. Also, we have over 400 warehouses. Could this be part of what’s triggering the issue?

Thanks

I had same issue. Don’t know what the underlying cause is, but it seems there is an issue if you have more than one parent warehouse. After deleting custom parent warehouse, patch went through.

Hi @sp9leo

This indeed got us past the issue. Thanks a great deal

Kind regards,