ERPnext non-functional on update

On applying the latest update using bench update, when I try to run ERPnext it’s stuck on:
Updating. We will be back in a few moments…
(our database is quite small)

“bench restart” has no effect on this.

And I got this error at the end (otherwise mostly success messages):

Executing erpnext.patches.v6_20.set_party_account_currency_in_orders in domain.com (1bd3e0294d)
Success
Executing erpnext.patches.v6_19.comment_feed_communication in domain.com (1bd3e0294d)
/home/peterdf/frappe-bench/apps/frappe/frappe/core/doctype/async_task/async_task.json missing
/home/peterdf/frappe-bench/apps/frappe/frappe/core/doctype/async_task/async_task.json missing
/home/peterdf/frappe-bench/apps/frappe/frappe/core/doctype/async_task/async_task.json missing
/home/peterdf/frappe-bench/apps/frappe/frappe/core/doctype/async_task/async_task.json missing
Success
Executing erpnext.patches.v6_21.fix_reorder_level in domain.com (1bd3e0294d)
Traceback (most recent call last):
  File "/usr/lib/python2.7/runpy.py", line 162, 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/peterdf/frappe-bench/apps/frappe/frappe/utils/bench_helper.py", line 79, in <module>
    main()
  File "/home/peterdf/frappe-bench/apps/frappe/frappe/utils/bench_helper.py", line 16, in main
    click.Group(commands=commands)(prog_name='bench')
  File "/home/peterdf/frappe-bench/env/local/lib/python2.7/site-packages/click/core.py", line 700, in __call__
    return self.main(*args, **kwargs)
  File "/home/peterdf/frappe-bench/env/local/lib/python2.7/site-packages/click/core.py", line 680, in main
    rv = self.invoke(ctx)
  File "/home/peterdf/frappe-bench/env/local/lib/python2.7/site-packages/click/core.py", line 1027, in invoke
    return _process_result(sub_ctx.command.invoke(sub_ctx))
  File "/home/peterdf/frappe-bench/env/local/lib/python2.7/site-packages/click/core.py", line 1027, in invoke
    return _process_result(sub_ctx.command.invoke(sub_ctx))
  File "/home/peterdf/frappe-bench/env/local/lib/python2.7/site-packages/click/core.py", line 873, in invoke
    return ctx.invoke(self.callback, **ctx.params)
  File "/home/peterdf/frappe-bench/env/local/lib/python2.7/site-packages/click/core.py", line 508, in invoke
    return callback(*args, **kwargs)
  File "/home/peterdf/frappe-bench/env/local/lib/python2.7/site-packages/click/decorators.py", line 16, in new_func
    return f(get_current_context(), *args, **kwargs)
  File "/home/peterdf/frappe-bench/apps/frappe/frappe/commands.py", line 29, in _func
    ret = f(frappe._dict(ctx.obj), *args, **kwargs)
  File "/home/peterdf/frappe-bench/apps/frappe/frappe/commands.py", line 213, in migrate
    frappe.modules.patch_handler.run_all()
  File "/home/peterdf/frappe-bench/apps/frappe/frappe/modules/patch_handler.py", line 25, in run_all
    if not run_single(patchmodule = patch):
  File "/home/peterdf/frappe-bench/apps/frappe/frappe/modules/patch_handler.py", line 52, in run_single
    return execute_patch(patchmodule, method, methodargs)
  File "/home/peterdf/frappe-bench/apps/frappe/frappe/modules/patch_handler.py", line 68, in execute_patch
    frappe.get_attr(patchmodule.split()[0] + ".execute")()
  File "/home/peterdf/frappe-bench/apps/erpnext/erpnext/patches/v6_21/fix_reorder_level.py", line 22, in execute
    item_doc.save()
  File "/home/peterdf/frappe-bench/apps/frappe/frappe/model/document.py", line 240, in save
    self.run_before_save_methods()
  File "/home/peterdf/frappe-bench/apps/frappe/frappe/model/document.py", line 595, in run_before_save_methods
    self.run_method("validate")
  File "/home/peterdf/frappe-bench/apps/frappe/frappe/model/document.py", line 557, in run_method
    return Document.hook(fn)(self, *args, **kwargs)
  File "/home/peterdf/frappe-bench/apps/frappe/frappe/model/document.py", line 712, in composer
    return composed(self, method, *args, **kwargs)
  File "/home/peterdf/frappe-bench/apps/frappe/frappe/model/document.py", line 695, in runner
    add_to_return_value(self, fn(self, *args, **kwargs))
  File "/home/peterdf/frappe-bench/apps/frappe/frappe/model/document.py", line 551, in <lambda>
    fn = lambda self, *args, **kwargs: getattr(self, method)(*args, **kwargs)
  File "/home/peterdf/frappe-bench/apps/erpnext/erpnext/stock/doctype/item/item.py", line 78, in validate
    self.validate_website_image()
  File "/home/peterdf/frappe-bench/apps/erpnext/erpnext/stock/doctype/item/item.py", line 107, in validate_website_image
    }, fields=["name", "is_private"], order_by="is_private asc", limit_page_length=1)
  File "/home/peterdf/frappe-bench/apps/frappe/frappe/__init__.py", line 949, in get_all
    return get_list(doctype, *args, **kwargs)
  File "/home/peterdf/frappe-bench/apps/frappe/frappe/__init__.py", line 922, in get_list
    return frappe.model.db_query.DatabaseQuery(doctype).execute(None, *args, **kwargs)
  File "/home/peterdf/frappe-bench/apps/frappe/frappe/model/db_query.py", line 50, in execute
    result = self.build_and_run()
  File "/home/peterdf/frappe-bench/apps/frappe/frappe/model/db_query.py", line 67, in build_and_run
    return frappe.db.sql(query, as_dict=not self.as_list, debug=self.debug)
  File "/home/peterdf/frappe-bench/apps/frappe/frappe/database.py", line 146, in sql
    self._cursor.execute(query)
  File "/home/peterdf/frappe-bench/env/local/lib/python2.7/site-packages/MySQLdb/cursors.py", line 205, in execute
    self.errorhandler(self, exc, value)
  File "/home/peterdf/frappe-bench/env/local/lib/python2.7/site-packages/MySQLdb/connections.py", line 36, in defaulterrorhandler
    raise errorclass, errorvalue
_mysql_exceptions.OperationalError: (1054, "Unknown column 'is_private' in 'field list'")
Traceback (most recent call last):
  File "/usr/local/bin/bench", line 9, in <module>
    load_entry_point('bench==0.92', 'console_scripts', 'bench')()
  File "/home/peterdf/bench-repo/bench/cli.py", line 60, in cli
    bench()
  File "/usr/local/lib/python2.7/dist-packages/click/core.py", line 700, in __call__
    return self.main(*args, **kwargs)
  File "/usr/local/lib/python2.7/dist-packages/click/core.py", line 680, in main
    rv = self.invoke(ctx)
  File "/usr/local/lib/python2.7/dist-packages/click/core.py", line 1027, in invoke
    return _process_result(sub_ctx.command.invoke(sub_ctx))
  File "/usr/local/lib/python2.7/dist-packages/click/core.py", line 873, in invoke
    return ctx.invoke(self.callback, **ctx.params)
  File "/usr/local/lib/python2.7/dist-packages/click/core.py", line 508, in invoke
    return callback(*args, **kwargs)
  File "/home/peterdf/bench-repo/bench/cli.py", line 241, in _update
    update(pull, patch, build, bench, auto, restart_supervisor, requirements, no_backup, upgrade, force=force)
  File "/home/peterdf/bench-repo/bench/cli.py", line 270, in update
    patch_sites(bench=bench_path)
  File "/home/peterdf/bench-repo/bench/utils.py", line 163, in patch_sites
    run_frappe_cmd('--site', 'all', 'migrate', bench=bench)
  File "/home/peterdf/bench-repo/bench/utils.py", line 498, in run_frappe_cmd
    raise CommandFailedError(args)
bench.utils.CommandFailedError: ('--site', 'all', 'migrate')

Any suggestions? Do I need to update something in Python?

I also noticed this, but I don’t know if it’s the cause:
Executing erpnext.patches.v6_19.comment_feed_communication in domain.com (1bd3e0294d)/frappe-bench/apps/frappe/frappe/core/doctype/async_task/async_task.json missing

Here is the result of bench run-tests:

$ bench run-tests
Traceback (most recent call last):
  File "/usr/lib/python2.7/runpy.py", line 162, 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/peterdf/frappe-bench/apps/frappe/frappe/utils/bench_helper.py", line 79, in <module>
    main()
  File "/home/peterdf/frappe-bench/apps/frappe/frappe/utils/bench_helper.py", line 16, in main
    click.Group(commands=commands)(prog_name='bench')
  File "/home/peterdf/frappe-bench/env/local/lib/python2.7/site-packages/click/core.py", line 700, in __call__
    return self.main(*args, **kwargs)
  File "/home/peterdf/frappe-bench/env/local/lib/python2.7/site-packages/click/core.py", line 680, in main
    rv = self.invoke(ctx)
  File "/home/peterdf/frappe-bench/env/local/lib/python2.7/site-packages/click/core.py", line 1027, in invoke
    return _process_result(sub_ctx.command.invoke(sub_ctx))
  File "/home/peterdf/frappe-bench/env/local/lib/python2.7/site-packages/click/core.py", line 1027, in invoke
    return _process_result(sub_ctx.command.invoke(sub_ctx))
  File "/home/peterdf/frappe-bench/env/local/lib/python2.7/site-packages/click/core.py", line 873, in invoke
    return ctx.invoke(self.callback, **ctx.params)
  File "/home/peterdf/frappe-bench/env/local/lib/python2.7/site-packages/click/core.py", line 508, in invoke
    return callback(*args, **kwargs)
  File "/home/peterdf/frappe-bench/env/local/lib/python2.7/site-packages/click/decorators.py", line 16, in new_func
    return f(get_current_context(), *args, **kwargs)
  File "/home/peterdf/frappe-bench/apps/frappe/frappe/commands.py", line 29, in _func
    ret = f(frappe._dict(ctx.obj), *args, **kwargs)
  File "/home/peterdf/frappe-bench/apps/frappe/frappe/commands.py", line 795, in run_tests
    ret = frappe.test_runner.main(app, module, doctype, context.verbose, tests=tests, force=context.force)
  File "/home/peterdf/frappe-bench/apps/frappe/frappe/test_runner.py", line 38, in main
    ret = run_all_tests(app, verbose)
  File "/home/peterdf/frappe-bench/apps/frappe/frappe/test_runner.py", line 73, in run_all_tests
    _add_test(path, filename, verbose, test_suite=test_suite)
  File "/home/peterdf/frappe-bench/apps/frappe/frappe/test_runner.py", line 128, in _add_test
    make_test_records(doctype, verbose)
  File "/home/peterdf/frappe-bench/apps/frappe/frappe/test_runner.py", line 144, in make_test_records
    make_test_records(options, verbose, force)
  File "/home/peterdf/frappe-bench/apps/frappe/frappe/test_runner.py", line 144, in make_test_records
    make_test_records(options, verbose, force)
  File "/home/peterdf/frappe-bench/apps/frappe/frappe/test_runner.py", line 144, in make_test_records
    make_test_records(options, verbose, force)
  File "/home/peterdf/frappe-bench/apps/frappe/frappe/test_runner.py", line 145, in make_test_records
    make_test_records_for_doctype(options, verbose, force)
  File "/home/peterdf/frappe-bench/apps/frappe/frappe/test_runner.py", line 190, in make_test_records_for_doctype
    frappe.local.test_objects[doctype] += make_test_objects(doctype, test_module.test_records, verbose)
  File "/home/peterdf/frappe-bench/apps/frappe/frappe/test_runner.py", line 237, in make_test_objects
    d.insert()
  File "/home/peterdf/frappe-bench/apps/frappe/frappe/model/document.py", line 194, in insert
    self._validate()
  File "/home/peterdf/frappe-bench/apps/frappe/frappe/model/document.py", line 338, in _validate
    self._validate_links()
  File "/home/peterdf/frappe-bench/apps/frappe/frappe/model/document.py", line 526, in _validate_links
    frappe.LinkValidationError)
  File "/home/peterdf/frappe-bench/apps/frappe/frappe/__init__.py", line 265, in throw
    msgprint(msg, raise_exception=exc)
  File "/home/peterdf/frappe-bench/apps/frappe/frappe/__init__.py", line 258, in msgprint
    _raise_exception()
  File "/home/peterdf/frappe-bench/apps/frappe/frappe/__init__.py", line 243, in _raise_exception
    raise raise_exception, encode(msg)
frappe.exceptions.LinkValidationError: No se pudo encontrar Cuenta principal: Stock Assets - _TC
$

This shouldn’t have occurred.

Try running:

bench --site all reload-doc core doctype file
bench update
1 Like

Thank you @anand … Here’s the output:

$ bench --site all reload_doc core doctype file
Usage: bench frappe [OPTIONS] COMMAND [ARGS]...

Error: No such command "reload_doc".

aah. just edited the command. It should be reload-doc.

1 Like

Thank you @anand! We’re up and running again.

There was one warning about SNI missing:

$ bench update
INFO:bench.utils:setting up sudoers
Already up-to-date.
Requirement already satisfied (use --upgrade to upgrade): Pillow in ./env/lib/python2.7/site-packages
INFO:bench.app:pulling frappe
From https://github.com/frappe/frappe
 * branch            master     -> FETCH_HEAD
Already up-to-date.
INFO:bench.app:pulling erpnext
From https://github.com/frappe/erpnext
 * branch            master     -> FETCH_HEAD
Already up-to-date.
/home/peterdf/frappe-bench/env/local/lib/python2.7/site-packages/pip/_vendor/requests/packages/urllib3/util/ssl_.py:315: SNIMissingWarning: An HTTPS request has been made, but the SNI (Subject Name Indication) extension to TLS is not available on this platform. This may cause the server to present an incorrect TLS certificate, which can cause validation failures. For more information, see https://urllib3.readthedocs.org/en/latest/security.html#snimissingwarning.
  SNIMissingWarning
/home/peterdf/frappe-bench/env/local/lib/python2.7/site-packages/pip/_vendor/requests/packages/urllib3/util/ssl_.py:120: InsecurePlatformWarning: A true SSLContext object is not available. This prevents urllib3 from configuring SSL appropriately and may cause certain SSL connections to fail. For more information, see https://urllib3.readthedocs.org/en/latest/security.html#insecureplatformwarning.
  InsecurePlatformWarning
Requirement already up-to-date: pip in ./env/lib/python2.7/site-packages
Migrating domainname.com
Executing erpnext.patches.v6_21.fix_reorder_level in domainname.com (1bd3e0294d)
Success
Updating frappe                     : [========================================]
Updating erpnext                    : [========================================]
Wrote ./assets/js/print_format_v3.min.js - 18k
Wrote ./assets/js/frappe-web.min.js - 100k
Wrote ./assets/js/form.min.js - 110k
Wrote ./assets/js/report.min.js - 155k
Wrote ./assets/js/erpnext.min.js - 35k
Wrote ./assets/css/list.min.css - 6k
Wrote ./assets/js/erpnext-web.min.js - 1k
Wrote ./assets/css/report.min.css - 7k
Wrote ./assets/css/frappe-web.css - 51k
Wrote ./assets/js/list.min.js - 65k
Wrote ./assets/js/dialog.min.js - 58k
Wrote ./assets/js/desk.min.js - 873k
Wrote ./assets/css/form.min.css - 2k
Wrote ./assets/js/editor.min.js - 26k
Wrote ./assets/css/erpnext.css - 1k
Wrote ./assets/css/desk.min.css - 256k
Wrote ./assets/js/module.min.js - 5k
Wrote ./assets/css/module.min.css - 1k
frappe-web: stopped
frappe-workerbeat: stopped
frappe-worker: stopped
frappe-web: started
frappe-workerbeat: started
frappe-worker: started
________________________________________________________________________________
Bench: Open source installer + admin for Frappe and ERPNext (https://erpnext.com)

$

For now you can ignore this

OK thanks

I spoke too soon :frowning:

On opening CRM > Leads (and same with Customers) I got this message:

Server Error: Please check your server logs or contact tech support.

Traceback (innermost last):
  File "/home/peterdf/frappe-bench/apps/frappe/frappe/app.py", line 69, in application
    response = frappe.handler.handle()
  File "/home/peterdf/frappe-bench/apps/frappe/frappe/handler.py", line 20, in handle
    execute_cmd(cmd)
  File "/home/peterdf/frappe-bench/apps/frappe/frappe/handler.py", line 37, in execute_cmd
    ret = frappe.call(method, **frappe.form_dict)
  File "/home/peterdf/frappe-bench/apps/frappe/frappe/__init__.py", line 801, in call
    return fn(*args, **newargs)
  File "/home/peterdf/frappe-bench/apps/frappe/frappe/desk/reportview.py", line 14, in get
    return compress(execute(**get_form_params()))
  File "/home/peterdf/frappe-bench/apps/frappe/frappe/desk/reportview.py", line 17, in execute
    return DatabaseQuery(doctype).execute(*args, **kwargs)
  File "/home/peterdf/frappe-bench/apps/frappe/frappe/model/db_query.py", line 50, in execute
    result = self.build_and_run()
  File "/home/peterdf/frappe-bench/apps/frappe/frappe/model/db_query.py", line 67, in build_and_run
    return frappe.db.sql(query, as_dict=not self.as_list, debug=self.debug)
  File "/home/peterdf/frappe-bench/apps/frappe/frappe/database.py", line 146, in sql
    self._cursor.execute(query)
  File "/home/peterdf/frappe-bench/env/local/lib/python2.7/site-packages/MySQLdb/cursors.py", line 205, in execute
    self.errorhandler(self, exc, value)
  File "/home/peterdf/frappe-bench/env/local/lib/python2.7/site-packages/MySQLdb/connections.py", line 36, in defaulterrorhandler
    raise errorclass, errorvalue
 OperationalError: (1054, "Unknown column 'tabLead._starred_by' in 'field list'")

Just refresh once again. The cache needs to be cleared.