[Release Notes] ERPNext and Frappe Version 13.1.0

The translation issue is still not fixed. We are still using this work around to get it solved

1 Like

@mujeerhashmi Can you share the traceback for this issue?

Any hints about this ?

Traceback (most recent call last):
  File "/home/mujeerhashmi/erpnext/frappe-bench/apps/frappe/frappe/www/app.py", line 22, in get_context
    boot = frappe.sessions.get()
  File "/home/mujeerhashmi/erpnext/frappe-bench/apps/frappe/frappe/sessions.py", line 132, in get
    bootinfo = get_bootinfo()
  File "/home/mujeerhashmi/erpnext/frappe-bench/apps/frappe/frappe/boot.py", line 58, in get_bootinfo
  File "/home/mujeerhashmi/erpnext/frappe-bench/apps/frappe/frappe/boot.py", line 214, in load_translations
    messages = frappe.get_lang_dict("boot")
  File "/home/mujeerhashmi/erpnext/frappe-bench/apps/frappe/frappe/__init__.py", line 114, in get_lang_dict
    return get_dict(fortype, name)
  File "/home/mujeerhashmi/erpnext/frappe-bench/apps/frappe/frappe/translate.py", line 115, in get_dict
  File "/home/mujeerhashmi/erpnext/frappe-bench/apps/frappe/frappe/translate.py", line 478, in get_server_messages
    messages.extend(get_messages_from_file(os.path.join(basepath, f)))
  File "/home/mujeerhashmi/erpnext/frappe-bench/apps/frappe/frappe/translate.py", line 527, in get_messages_from_file
    for line, message, context in extract_messages_from_code(file_contents)]
  File "/home/mujeerhashmi/erpnext/frappe-bench/apps/frappe/frappe/translate.py", line 542, in extract_messages_from_code
    code = frappe.as_unicode(render_include(code))
  File "/home/mujeerhashmi/erpnext/frappe-bench/apps/frappe/frappe/model/utils/__init__.py", line 70, in render_include
    with io.open(frappe.get_app_path(app, app_path), 'r', encoding = 'utf-8') as f:
  File "/home/mujeerhashmi/erpnext/frappe-bench/apps/frappe/frappe/__init__.py", line 954, in get_app_path
    return get_pymodule_path(app_name, *joins)
  File "/home/mujeerhashmi/erpnext/frappe-bench/apps/frappe/frappe/__init__.py", line 969, in get_pymodule_path
    return os.path.join(os.path.dirname(get_module(scrub(modulename)).__file__ or ''), *joins)
  File "/home/mujeerhashmi/erpnext/frappe-bench/apps/frappe/frappe/__init__.py", line 931, in get_module
    return importlib.import_module(modulename)
  File "/home/mujeerhashmi/erpnext/frappe-bench/env/lib/python3.6/importlib/__init__.py", line 126, in import_module
    return _bootstrap._gcd_import(name[level:], package, level)
  File "<frozen importlib._bootstrap>", line 991, in _gcd_import
  File "<frozen importlib._bootstrap>", line 930, in _sanity_check
ValueError: Empty module name

Executing erpnext.patches.v13_0.healthcare_lab_module_rename_doctypes in site1.local (_4bc010a720c49300)
Traceback (most recent call last):
File “/usr/lib/python3.6/runpy.py”, line 193, in _run_module_as_main
main”, mod_spec)
File “/usr/lib/python3.6/runpy.py”, line 85, in _run_code
exec(code, run_globals)
File “/home/v13/frappe-bench/apps/frappe/frappe/utils/bench_helper.py”, line 101, in
File “/home/v13/frappe-bench/apps/frappe/frappe/utils/bench_helper.py”, line 18, in main
File “/home/v13/frappe-bench/env/lib/python3.6/site-packages/click/core.py”, line 764, in call
return self.main(*args, **kwargs)
File “/home/v13/frappe-bench/env/lib/python3.6/site-packages/click/core.py”, line 717, in main
rv = self.invoke(ctx)
File “/home/v13/frappe-bench/env/lib/python3.6/site-packages/click/core.py”, line 1137, in invoke
return _process_result(sub_ctx.command.invoke(sub_ctx))
File “/home/v13/frappe-bench/env/lib/python3.6/site-packages/click/core.py”, line 1137, in invoke
return _process_result(sub_ctx.command.invoke(sub_ctx))
File “/home/v13/frappe-bench/env/lib/python3.6/site-packages/click/core.py”, line 956, in invoke
return ctx.invoke(self.callback, **ctx.params)
File “/home/v13/frappe-bench/env/lib/python3.6/site-packages/click/core.py”, line 555, in invoke
return callback(*args, **kwargs)
File “/home/v13/frappe-bench/env/lib/python3.6/site-packages/click/decorators.py”, line 17, in new_func
return f(get_current_context(), *args, **kwargs)
File “/home/v13/frappe-bench/apps/frappe/frappe/commands/init.py”, line 27, in _func
ret = f(frappe._dict(ctx.obj), *args, **kwargs)
File “/home/v13/frappe-bench/apps/frappe/frappe/commands/site.py”, line 300, in migrate
File “/home/v13/frappe-bench/apps/frappe/frappe/migrate.py”, line 67, in migrate
File “/home/v13/frappe-bench/apps/frappe/frappe/modules/patch_handler.py”, line 41, in run_all
File “/home/v13/frappe-bench/apps/frappe/frappe/modules/patch_handler.py”, line 30, in run_patch
if not run_single(patchmodule = patch):
File “/home/v13/frappe-bench/apps/frappe/frappe/modules/patch_handler.py”, line 71, in run_single
return execute_patch(patchmodule, method, methodargs)
File “/home/v13/frappe-bench/apps/frappe/frappe/modules/patch_handler.py”, line 91, in execute_patch
frappe.get_attr(patchmodule.split()[0] + “.execute”)()
File “/home/v13/frappe-bench/apps/erpnext/erpnext/patches/v13_0/healthcare_lab_module_rename_doctypes.py”, line 41, in execute
frappe.db.sql(“”“UPDATE tabNormal Test Result SET lab_test_name = test_name”“”)
File “/home/v13/frappe-bench/apps/frappe/frappe/database/database.py”, line 152, in sql
File “/home/v13/frappe-bench/env/lib/python3.6/site-packages/pymysql/cursors.py”, line 170, in execute
result = self._query(query)
File “/home/v13/frappe-bench/env/lib/python3.6/site-packages/pymysql/cursors.py”, line 328, in _query
File “/home/v13/frappe-bench/env/lib/python3.6/site-packages/pymysql/connections.py”, line 517, in query
self._affected_rows = self._read_query_result(unbuffered=unbuffered)
File “/home/v13/frappe-bench/env/lib/python3.6/site-packages/pymysql/connections.py”, line 732, in _read_query_result
File “/home/v13/frappe-bench/env/lib/python3.6/site-packages/pymysql/connections.py”, line 1075, in read
first_packet = self.connection._read_packet()
File “/home/v13/frappe-bench/env/lib/python3.6/site-packages/pymysql/connections.py”, line 684, in _read_packet
File “/home/v13/frappe-bench/env/lib/python3.6/site-packages/pymysql/protocol.py”, line 220, in check_error
File “/home/v13/frappe-bench/env/lib/python3.6/site-packages/pymysql/err.py”, line 109, in raise_mysql_exception
raise errorclass(errno, errval)
pymysql.err.InternalError: (1054, “Unknown column ‘test_name’ in ‘field list’”)

1 Like

@Majid_Ejaz We will release a fix very soon, for now you can comment out this patch and go ahead.


Again stock valuation problem after updated to 13.1

If you sync stock and account balance via Journal Entry on 15th April, and then if you try to make a back-dated stock transaction again on 10th April, the validation will come again.

Is it the same in your case?

Seems it is not related to this release.

Hi Nabin
yes the first case is very common and glad to know that you are aware of it… i trust this will be fixed soon

from sales invoice

Thank you Frappe team, you did a great job again.

Great job guys.

Here’s an observation for your attention:

The standard doctypes are missing in the Patient History Settings doc in Healthcare domain.

As a result, the Patient History report displays on the personal details of the patient. Details about Patient Appointments, Medical Records, Lab Test, Patient Encounters, Vital Signes, etc are missing.

For your kind attention.

1 Like

Getting this when I open the website given by ERPNext. Not there previously.

1 Like

I get this error after the update

module 'public' has no attribute '__file__'

Hi Nabin. Sorry to tag you here but can you please help understand why there is need to have this validation for stock & Accounts Ledger Sync and Forcing users to post a manual JV for the difference, whereas the Repost Item Valuation functionality is already doing the same thing!!!??

I did heavy testing for Version 13.0.0 wherein the Repost Item Valuation was correctly reposting all accounting differences. Although it gets stuck in queue/in progress most of the times but whenever we restart the Repost from backend it correctly updated all the accounting & stock ledger entries.

Based upon my testing i feel that if we bypass this validation for accounts/stock ledger sync thereby avoiding the manual JV and let Repost doctype work as per the defined logic then our accounts and stock ledger will be sync automatically. The only thing we have to make sure is that our repost don’t get stuck in queue/In-progress.

Please correct me if I am missing something…

1 Like

If it’s is a new site, looks like the domain was not correctly set. Setting the domain to Healthcare should have inserted the default doctypes in Patient History Settings. Could you please try setting this in Domain Settings once again?

Or just to fix this, you can run this on bench console-

from erpnext.healthcare.setup import setup_patient_history_settings


1 Like

@akurungadam thanks.
The site is on Frappe Cloud, so we do not have shell access. We’ll try setting the domain again as advised.

1 Like

Search to go to documnet like Domain Settings

Then you can go to


Check Healthcare domain and save and refresh browser

after the upgrade, I saw a new setting in site.config:

“user_type_doctype_limit”: {
“employee_self_service”: 10

can anyone advise what is the implication of this?

@surajshetty any updates??

On 13.1.2 - latest - just realized System Settings shows Not Saved. Changes made are retained - but the label seems stuck at Not Saved. Just fyi.