diff --git a/frappe/core/doctype/doctype/doctype.py b/frappe/core/doctype/doctype/doctype.py index 9f5cecaaa2..39f33d19e4 100644 --- a/frappe/core/doctype/doctype/doctype.py +++ b/frappe/core/doctype/doctype/doctype.py @@ -550,10 +550,19 @@ class DocType(Document): and (frappe.conf.developer_mode or frappe.flags.allow_doctype_export) ) if allow_doctype_export: - self.export_doc() - self.make_controller_template() - self.set_base_class_for_controller() - self.export_types_to_controller() + + def export_doctype_files(): + self.export_doc() + self.make_controller_template() + self.set_base_class_for_controller() + self.export_types_to_controller() + + request = getattr(frappe.local, "request", None) + # Defer file writes until after the response so the client can sync the saved doc first. + if request and hasattr(request, "after_response"): + request.after_response.add(export_doctype_files) + else: + export_doctype_files() # update index if not self.custom: