ERPNext.com Frappe Cloud Support Partners Foundation

Update Prices in all BOMs timeout error

I have in excess of 30k BOMs in my instance of ERPNext v11.1.77 (version-11) and have set the Manufacturing settings as follows:

Despite the “Update BOM Cost Automatically” option being enabled, I find that the rates in the BOMs are not all being updated.

I checked the error logs and found repeated versions of the following:

Title
erpnext.manufacturing.doctype.bom_update_tool.bom_update_tool.update_latest_price_in_all_boms
Error
{‘event’: u’daily_long’, ‘retry’: 0, ‘log’: <function log at 0x7fd40bbf98c0>, ‘site’: u, ‘job_name’: u’erpnext.manufacturing.doctype.bom_update_tool.bom_update_tool.update_latest_price_in_all_boms’, ‘method_name’: u’erpnext.manufacturing.doctype.bom_update_tool.bom_update_tool.update_latest_price_in_all_boms’, ‘method’: <function update_latest_price_in_all_boms at 0x7fd40bb41ed8>, ‘user’: u’Administrator’, ‘kwargs’: {}, ‘is_async’: True}
Traceback (most recent call last):
File “/home/frappe/frappe-bench/apps/frappe/frappe/utils/background_jobs.py”, line 104, in execute_job
method(**kwargs)
File “/home/frappe/frappe-bench/apps/erpnext/erpnext/manufacturing/doctype/bom_update_tool/bom_update_tool.py”, line 82, in update_latest_price_in_all_boms
update_cost()
File “/home/frappe/frappe-bench/apps/erpnext/erpnext/manufacturing/doctype/bom_update_tool/bom_update_tool.py”, line 95, in update_cost
frappe.get_doc(“BOM”, bom).update_cost(update_parent=False, from_child_bom=True)
File “/home/frappe/frappe-bench/apps/erpnext/erpnext/manufacturing/doctype/bom/bom.py”, line 239, in update_cost
self.save()
File “/home/frappe/frappe-bench/apps/frappe/frappe/model/document.py”, line 260, in save
return self._save(*args, **kwargs)
File “/home/frappe/frappe-bench/apps/frappe/frappe/model/document.py”, line 313, in _save
self.run_post_save_methods()
File “/home/frappe/frappe-bench/apps/frappe/frappe/model/document.py”, line 919, in run_post_save_methods
self.notify_update()
File “/home/frappe/frappe-bench/apps/frappe/frappe/model/document.py”, line 951, in notify_update
frappe.publish_realtime(“list_update”, data, after_commit=True)
File “/home/frappe/frappe-bench/apps/frappe/frappe/init.py”, line 1427, in publish_realtime
return frappe.realtime.publish_realtime(*args, **kwargs)
File “/home/frappe/frappe-bench/apps/frappe/frappe/realtime.py”, line 101, in publish_realtime
if not params in frappe.local.realtime_log:
File “/home/frappe/frappe-bench/env/local/lib/python2.7/site-packages/rq/timeouts.py”, line 64, in handle_death_penalty
‘({0} seconds)’.format(self._timeout))
JobTimeoutException: Task exceeded maximum timeout value (1500 seconds)

My understanding of this is that ERPNext is updating BOMs but is unable to cycle through all the BOMs within the 1500 seconds time limit. Is this correct?

I am in need of getting this function to cycle through all the existing BOMs and would appreciate any help in this matter.

Thanks in advance.

upgrading to v12 might help