diff --git a/erpnext/accounts/doctype/sales_invoice/pos.py b/erpnext/accounts/doctype/sales_invoice/pos.py
index f36fdf7..2b3459a 100644
--- a/erpnext/accounts/doctype/sales_invoice/pos.py
+++ b/erpnext/accounts/doctype/sales_invoice/pos.py
@@ -320,8 +320,7 @@
 				si_doc.set_posting_time = 1
 				si_doc.customer = get_customer_id(doc)
 				si_doc.due_date = doc.get('posting_date')
-				submit_invoice(si_doc, name, doc)
-				name_list.append(name)
+				name_list = submit_invoice(si_doc, name, doc, name_list)
 			else:
 				name_list.append(name)
 
@@ -475,19 +474,29 @@
 			frappe.db.commit()
 
 
-def submit_invoice(si_doc, name, doc):
+def submit_invoice(si_doc, name, doc, name_list):
 	try:
 		si_doc.insert()
 		si_doc.submit()
 		frappe.db.commit()
+		name_list.append(name)
 	except Exception as e:
 		if frappe.message_log: frappe.message_log.pop()
 		frappe.db.rollback()
-		save_invoice(e, si_doc, name)
+		frappe.log_error(frappe.get_traceback())
+		name_list = save_invoice(e, si_doc, name, name_list)
 
-def save_invoice(e, si_doc, name):
-	if not frappe.db.exists('Sales Invoice', {'offline_pos_name': name}):
-		si_doc.docstatus = 0
-		si_doc.flags.ignore_mandatory = True
-		si_doc.due_date = si_doc.posting_date
-		si_doc.insert()
+	return name_list
+
+def save_invoice(e, si_doc, name, name_list):
+	try:
+		if not frappe.db.exists('Sales Invoice', {'offline_pos_name': name}):
+			si_doc.docstatus = 0
+			si_doc.flags.ignore_mandatory = True
+			si_doc.due_date = si_doc.posting_date
+			si_doc.insert()
+			name_list.append(name)
+	except Exception:
+		frappe.log_error(frappe.get_traceback())
+
+	return name_list
diff --git a/erpnext/accounts/page/pos/pos.js b/erpnext/accounts/page/pos/pos.js
index e362db0..33b41e9 100644
--- a/erpnext/accounts/page/pos/pos.js
+++ b/erpnext/accounts/page/pos/pos.js
@@ -732,14 +732,7 @@
 
 					input = input.toLowerCase();
 					item = this.get_item(item.value);
-					var searchtext =
-						Object.keys(item)
-							.filter(key => ['customer_name', 'customer_group', 'value', 'label', 'email_id', 'phone', 'mobile_no'].includes(key))
-							.map(key => item[key])
-							.join(" ")
-							.toLowerCase();
-
-					return searchtext.includes(input)
+					return item.searchtext.includes(input)
 				},
 				item: function (item, input) {
 					var d = this.get_item(item.value);
@@ -813,7 +806,11 @@
 				territory: c.territory,
 				phone: contact ? contact["phone"] : '',
 				mobile_no: contact ? contact["mobile_no"] : '',
-				email_id: contact ? contact["email_id"] : ''
+				email_id: contact ? contact["email_id"] : '',
+				searchtext: ['customer_name', 'customer_group', 'value',
+					'label', 'email_id', 'phone', 'mobile_no']
+					.map(key => c[key]).join(' ')
+					.toLowerCase()
 			}
 		});
 
