Hi everyone,
I’m experiencing an issue while deploying the ERPNext Shipping app on our Frappe Cloud instance. The initial steps, “Initializing” and “Deploying Bench”, complete successfully. However, the process fails during the “Creating Site” phase—specifically at the “Install Apps” step.
Has anyone encountered this problem or have insights into what might be causing the failure during the “Install Apps” step? Any guidance or troubleshooting suggestions would be greatly appreciated.
Thanks in advance for your help!
Installing erpnext_shipping...
Updating DocTypes for erpnext_shipping: [========================================] 100%
An error occurred while installing erpnext_shipping: Could not find DocType: Delivery Note
Traceback with variables (most recent call last):
File "apps/frappe/frappe/commands/site.py", line 484, in install_app
_install_app(app, verbose=context.verbose, force=force)
context = {'sites': ['obfuscate.frappe.cloud'], 'force': False, 'verbose': False, 'profile': False}
apps = ('erpnext_shipping',)
force = False
_install_app = <function install_app at 0x7fede2707060>
filelock = <function filelock at 0x7fede27042c0>
exit_code = 0
site = 'obfuscate.frappe.cloud'
app = 'erpnext_shipping'
err = LinkValidationError('Could not find DocType: Delivery Note')
File "apps/frappe/frappe/installer.py", line 326, in install_app
frappe.get_attr(after_install)()
name = 'erpnext_shipping'
verbose = False
set_as_patched = True
force = False
sync_jobs = <function sync_jobs at 0x7fede168b560>
sync_for = <function sync_for at 0x7fede169c400>
sync_customizations = <function sync_customizations at 0x7fede28b0680>
sync_fixtures = <function sync_fixtures at 0x7fede169c720>
app_hooks = {'after_install': ['erpnext_shipping.install.after_install'], 'app_color': ['grey'], 'app_description': ['A Shipping Integration fir ERPNext'], 'app_email': ['developers@frappe.io'], 'app_icon': ['octicon octicon-file-directory'], 'app_include_js': ['shipping.bundle.js'], 'app_license': ['MIT'], 'app_name': ['erpnext_shipping'], 'app_publisher': ['Frappe'], 'app_title': ['ERPNext Shipping'], 'app_version': ['15.0.3'], 'doctype_js': {'Shipment': ['public/js/shipment.js']}, 'scheduler_events': {'daily': ['erpnext_shipping.erpnext_shipping.utils.update_tracking_info_daily']}, 'shipping_custom_fields': {'Delivery Note': [{'fieldname': 'shipping_sec_break', 'label': 'Shipping Details', 'fieldtype': 'Section Break', 'collapsible': 1, 'insert_after': 'sales_team'}, {'fieldname': 'delivery_type', 'label': 'Delivery Type', 'fieldtype': 'Data', 'read_only': 1, 'translatable': 0, 'insert_after': 'shipping_sec_break'}, {'fieldname': 'parcel_service', 'label': 'Parcel Service', 'fieldtype': 'Data',...
installed_apps = ['frappe']
after_install = 'erpnext_shipping.install.after_install'
File "apps/erpnext_shipping/erpnext_shipping/install.py", line 7, in after_install
create_custom_fields(custom_fields)
custom_fields = {'Delivery Note': [{'fieldname': 'shipping_sec_break', 'label': 'Shipping Details', 'fieldtype': 'Section Break', 'collapsible': 1, 'insert_after': 'sales_team'}, {'fieldname': 'delivery_type', 'label': 'Delivery Type', 'fieldtype': 'Data', 'read_only': 1, 'translatable': 0, 'insert_after': 'shipping_sec_break'}, {'fieldname': 'parcel_service', 'label': 'Parcel Service', 'fieldtype': 'Data', 'options': 'Parcel Service', 'read_only': 1, 'insert_after': 'delivery_type'}, {'fieldname': 'parcel_service_type', 'label': 'Parcel Service Type', 'fieldtype': 'Data', 'options': 'Parcel Service Type', 'read_only': 1, 'insert_after': 'parcel_service'}, {'fieldname': 'shipping_col_break', 'fieldtype': 'Column Break', 'insert_after': 'parcel_service_type'}, {'fieldname': 'tracking_number', 'label': 'Tracking Number', 'fieldtype': 'Data', 'read_only': 1, 'translatable': 0, 'insert_after': 'shipping_col_break'}, {'fieldname': 'tracking_url', 'label': 'Tracking URL', 'fieldtype': 'Small Text', 'read_on...
File "apps/frappe/frappe/custom/doctype/custom_field/custom_field.py", line 328, in create_custom_fields
create_custom_field(doctype, df, ignore_validate=ignore_validate)
custom_fields = {'Delivery Note': [{'fieldname': 'shipping_sec_break', 'label': 'Shipping Details', 'fieldtype': 'Section Break', 'collapsible': 1, 'insert_after': 'sales_team'}, {'fieldname': 'delivery_type', 'label': 'Delivery Type', 'fieldtype': 'Data', 'read_only': 1, 'translatable': 0, 'insert_after': 'shipping_sec_break'}, {'fieldname': 'parcel_service', 'label': 'Parcel Service', 'fieldtype': 'Data', 'options': 'Parcel Service', 'read_only': 1, 'insert_after': 'delivery_type'}, {'fieldname': 'parcel_service_type', 'label': 'Parcel Service Type', 'fieldtype': 'Data', 'options': 'Parcel Service Type', 'read_only': 1, 'insert_after': 'parcel_service'}, {'fieldname': 'shipping_col_break', 'fieldtype': 'Column Break', 'insert_after': 'parcel_service_type'}, {'fieldname': 'tracking_number', 'label': 'Tracking Number', 'fieldtype': 'Data', 'read_only': 1, 'translatable': 0, 'insert_after': 'shipping_col_break'}, {'fieldname': 'tracking_url', 'label': 'Tracking URL', 'fieldtype': 'Small Text', 'read_on...
ignore_validate = False
update = True
doctypes_to_update = {'Delivery Note'}
doctypes = ('Delivery Note',)
fields = [{'fieldname': 'shipping_sec_break', 'label': 'Shipping Details', 'fieldtype': 'Section Break', 'collapsible': 1, 'insert_after': 'sales_team'}, {'fieldname': 'delivery_type', 'label': 'Delivery Type', 'fieldtype': 'Data', 'read_only': 1, 'translatable': 0, 'insert_after': 'shipping_sec_break'}, {'fieldname': 'parcel_service', 'label': 'Parcel Service', 'fieldtype': 'Data', 'options': 'Parcel Service', 'read_only': 1, 'insert_after': 'delivery_type'}, {'fieldname': 'parcel_service_type', 'label': 'Parcel Service Type', 'fieldtype': 'Data', 'options': 'Parcel Service Type', 'read_only': 1, 'insert_after': 'parcel_service'}, {'fieldname': 'shipping_col_break', 'fieldtype': 'Column Break', 'insert_after': 'parcel_service_type'}, {'fieldname': 'tracking_number', 'label': 'Tracking Number', 'fieldtype': 'Data', 'read_only': 1, 'translatable': 0, 'insert_after': 'shipping_col_break'}, {'fieldname': 'tracking_url', 'label': 'Tracking URL', 'fieldtype': 'Small Text', 'read_only': 1, 'translata...
doctype = 'Delivery Note'
df = {'fieldname': 'shipping_sec_break', 'label': 'Shipping Details', 'fieldtype': 'Section Break', 'collapsible': 1, 'insert_after': 'sales_team', 'owner': 'Administrator'}
field = None
File "apps/frappe/frappe/custom/doctype/custom_field/custom_field.py", line 294, in create_custom_field
custom_field.insert()
doctype = 'Delivery Note'
df = {'fieldname': 'shipping_sec_break', 'label': 'Shipping Details', 'fieldtype': 'Section Break', 'collapsible': 1, 'insert_after': 'sales_team', 'owner': 'Administrator'}
ignore_validate = False
is_system_generated = True
custom_field = <CustomField: unsaved>
File "apps/frappe/frappe/model/document.py", line 287, in insert
self._validate_links()
self = <CustomField: unsaved>
ignore_permissions = None
ignore_links = None
ignore_if_duplicate = False
ignore_mandatory = None
set_name = None
set_child_names = True
File "apps/frappe/frappe/model/document.py", line 942, in _validate_links
frappe.throw(_("Could not find {0}").format(msg), frappe.LinkValidationError)
self = <CustomField: unsaved>
invalid_links = [('dt', 'Delivery Note', 'DocType: Delivery Note')]
cancelled_links = []
msg = 'DocType: Delivery Note'
File "apps/frappe/frappe/__init__.py", line 603, in throw
msgprint(
msg = 'Could not find DocType: Delivery Note'
exc = <class 'frappe.exceptions.LinkValidationError'>
title = None
is_minimizable = False
wide = False
as_list = False
primary_action = None
File "apps/frappe/frappe/__init__.py", line 568, in msgprint
_raise_exception()
msg = 'Could not find DocType: Delivery Note'
title = None
raise_exception = <class 'frappe.exceptions.LinkValidationError'>
as_table = False
as_list = False
indicator = 'red'
alert = False
primary_action = None
is_minimizable = False
wide = False
realtime = False
sys = <module 'sys' (built-in)>
_raise_exception = <function msgprint.<locals>._raise_exception at 0x7feddf4abe20>
inspect = <module 'inspect' from '/usr/lib/python3.11/inspect.py'>
out = {'message': 'Could not find DocType: Delivery Note', 'title': 'Message', 'indicator': 'red', 'raise_exception': 1, '__frappe_exc_id': '76a76f6dccc490ff137c4a72469e20092eb359fd50dbe2f6282f42fd'}
File "apps/frappe/frappe/__init__.py", line 519, in _raise_exception
raise exc
exc = LinkValidationError('Could not find DocType: Delivery Note')
inspect = <module 'inspect' from '/usr/lib/python3.11/inspect.py'>
msg = 'Could not find DocType: Delivery Note'
out = {'message': 'Could not find DocType: Delivery Note', 'title': 'Message', 'indicator': 'red', 'raise_exception': 1, '__frappe_exc_id': '76a76f6dccc490ff137c4a72469e20092eb359fd50dbe2f6282f42fd'}
raise_exception = <class 'frappe.exceptions.LinkValidationError'>
frappe.exceptions.LinkValidationError: Could not find DocType: Delivery Note