Payroll Entry Failed

Hello ,
When we click on the Submit Salary slip button from the Payroll entry is failed

Please guide me

Hie anyone please help me ? why this issue ?

When we create an single employee entry it working fine but when we add more employee like 15 20 it not working

share screenshot of the error log

Please check total error log please reply i am waiting

Traceback with variables (most recent call last):
  File "apps/hrms/hrms/payroll/doctype/payroll_entry/payroll_entry.py", line 1537, in submit_salary_slips_for_employees
    payroll_entry.make_accrual_jv_entry(submitted)
      payroll_entry = <PayrollEntry: HR-PRUN-2025-00017 docstatus=1>
      salary_slips = (('Sal Slip/HR-EMP-A107/00012', 'Tax Component'), ('Sal Slip/HR-EMP-A108/00012', 'Tax Component'), ('Sal Slip/HR-EMP-A114/00011', 'Tax Component'), ('Sal Slip/HR-EMP-A12/00011', 'Tax Component'), ('Sal Slip/HR-EMP-A120/00011', 'Tax Component'))
      publish_progress = False
      submitted = [<SalarySlip: Sal Slip/HR-EMP-A107/00012 docstatus=1>, <SalarySlip: Sal Slip/HR-EMP-A108/00012 docstatus=1>, <SalarySlip: Sal Slip/HR-EMP-A114/00011 docstatus=1>, <SalarySlip: Sal Slip/HR-EMP-A12/00011 docstatus=1>, <SalarySlip: Sal Slip/HR-EMP-A120/00011 docstatus=1>]
      unsubmitted = []
      count = 5
      entry = ('Sal Slip/HR-EMP-A120/00011', 'Tax Component')
      salary_slip = <SalarySlip: Sal Slip/HR-EMP-A120/00011 docstatus=1>
      e = ValidationError('Row 4: Party Type and Party is required for Receivable / Payable account Debtors - AJB')
  File "apps/hrms/hrms/payroll/doctype/payroll_entry/payroll_entry.py", line 588, in make_accrual_jv_entry
    self.make_journal_entry(
      self = <PayrollEntry: HR-PRUN-2025-00017 docstatus=1>
      submitted_salary_slips = [<SalarySlip: Sal Slip/HR-EMP-A107/00012 docstatus=1>, <SalarySlip: Sal Slip/HR-EMP-A108/00012 docstatus=1>, <SalarySlip: Sal Slip/HR-EMP-A114/00011 docstatus=1>, <SalarySlip: Sal Slip/HR-EMP-A12/00011 docstatus=1>, <SalarySlip: Sal Slip/HR-EMP-A120/00011 docstatus=1>]
      employee_wise_accounting_enabled = 0
      earnings = {('Payroll Payable - AJB', 'Main - AJB'): 511994.8, ('Marketing Expenses - AJB', 'Main - AJB'): 10625.0}
      deductions = {('Payroll Payable - AJB', 'Main - AJB'): 88013.64, ('Debtors - AJB', 'Main - AJB'): 17300.0}
      precision = 2
      accounts = [{'account': 'Payroll Payable - AJB', 'exchange_rate': 1.0, 'cost_center': 'Main - AJB', 'project': None, 'debit_in_account_currency': 511994.8, 'doctype': 'Journal Entry Account'}, {'account': 'Marketing Expenses - AJB', 'exchange_rate': 1.0, 'cost_center': 'Main - AJB', 'project': None, 'debit_in_account_currency': 10625.0, 'doctype': 'Journal Entry Account'}, {'account': 'Payroll Payable - AJB', 'exchange_rate': 1.0, 'cost_center': 'Main - AJB', 'project': None, 'credit_in_account_currency': 88013.64, 'doctype': 'Journal Entry Account'}, {'account': 'Debtors - AJB', 'exchange_rate': 1.0, 'cost_center': 'Main - AJB', 'project': None, 'credit_in_account_currency': 17300.0, 'doctype': 'Journal Entry Account'}, {'account': 'Payroll Payable - AJB', 'exchange_rate': 1.0, 'cost_center': 'Main - AJB', 'project': None, 'credit_in_account_currency': 417306.16, 'reference_type': 'Payroll Entry', 'reference_name': 'HR-PRUN-2025-00017', 'doctype': 'Journal Entry Account'}]
      currencies = ['INR']
      payable_amount = 417306.16
      accounting_dimensions = []
      company_currency = 'INR'
  File "apps/hrms/hrms/payroll/doctype/payroll_entry/payroll_entry.py", line 626, in make_journal_entry
    journal_entry.save(ignore_permissions=True)
      self = <PayrollEntry: HR-PRUN-2025-00017 docstatus=1>
      accounts = [{'account': 'Payroll Payable - AJB', 'exchange_rate': 1.0, 'cost_center': 'Main - AJB', 'project': None, 'debit_in_account_currency': 511994.8, 'doctype': 'Journal Entry Account'}, {'account': 'Marketing Expenses - AJB', 'exchange_rate': 1.0, 'cost_center': 'Main - AJB', 'project': None, 'debit_in_account_currency': 10625.0, 'doctype': 'Journal Entry Account'}, {'account': 'Payroll Payable - AJB', 'exchange_rate': 1.0, 'cost_center': 'Main - AJB', 'project': None, 'credit_in_account_currency': 88013.64, 'doctype': 'Journal Entry Account'}, {'account': 'Debtors - AJB', 'exchange_rate': 1.0, 'cost_center': 'Main - AJB', 'project': None, 'credit_in_account_currency': 17300.0, 'doctype': 'Journal Entry Account'}, {'account': 'Payroll Payable - AJB', 'exchange_rate': 1.0, 'cost_center': 'Main - AJB', 'project': None, 'credit_in_account_currency': 417306.16, 'reference_type': 'Payroll Entry', 'reference_name': 'HR-PRUN-2025-00017', 'doctype': 'Journal Entry Account'}]
      currencies = ['INR']
      payroll_payable_account = 'Payroll Payable - AJB'
      voucher_type = 'Journal Entry'
      user_remark = 'Accrual Journal Entry for salaries from 2025-03-01 to 2025-03-31'
      submitted_salary_slips = [<SalarySlip: Sal Slip/HR-EMP-A107/00012 docstatus=1>, <SalarySlip: Sal Slip/HR-EMP-A108/00012 docstatus=1>, <SalarySlip: Sal Slip/HR-EMP-A114/00011 docstatus=1>, <SalarySlip: Sal Slip/HR-EMP-A12/00011 docstatus=1>, <SalarySlip: Sal Slip/HR-EMP-A120/00011 docstatus=1>]
      submit_journal_entry = True
      multi_currency = 0
      journal_entry = <JournalEntry: ACC-JV-2025-00008>
  File "apps/frappe/frappe/model/document.py", line 378, in save
    return self._save(*args, **kwargs)
      self = <JournalEntry: ACC-JV-2025-00008>
      args = ()
      kwargs = {'ignore_permissions': True}
  File "apps/frappe/frappe/model/document.py", line 400, in _save
    return self.insert()
      self = <JournalEntry: ACC-JV-2025-00008>
      ignore_permissions = True
      ignore_version = None
  File "apps/frappe/frappe/model/document.py", line 309, in insert
    self.run_before_save_methods()
      self = <JournalEntry: ACC-JV-2025-00008>
      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 1136, in run_before_save_methods
    self.run_method("validate")
      self = <JournalEntry: ACC-JV-2025-00008>
  File "apps/frappe/frappe/model/document.py", line 1007, in run_method
    out = Document.hook(fn)(self, *args, **kwargs)
      self = <JournalEntry: ACC-JV-2025-00008>
      method = 'validate'
      args = ()
      kwargs = {}
      fn = <function Document.run_method.<locals>.fn at 0x7f2fc887fa60>
  File "apps/frappe/frappe/model/document.py", line 1367, in composer
    return composed(self, method, *args, **kwargs)
      self = <JournalEntry: ACC-JV-2025-00008>
      args = ()
      kwargs = {}
      hooks = [<function validate_accounting_period_on_doc_save at 0x7f2fc81f7560>, <function validate_expense_claim_in_jv at 0x7f2fc87f00e0>, <function apply at 0x7f2fc81e9c60>, <function check_for_running_deletion_job at 0x7f2fc81eb880>]
      method = 'validate'
      doc_events = {'*': {'on_update': ['frappe.desk.notifications.clear_doctype_notifications', 'frappe.workflow.doctype.workflow_action.workflow_action.process_workflow_actions', 'frappe.core.doctype.file.utils.attach_files_to_document', 'frappe.automation.doctype.assignment_rule.assignment_rule.apply', 'frappe.automation.doctype.assignment_rule.assignment_rule.update_due_date', 'frappe.core.doctype.user_type.user_type.apply_permissions_for_non_standard_user_type'], 'after_rename': ['frappe.desk.notifications.clear_doctype_notifications'], 'on_cancel': ['frappe.desk.notifications.clear_doctype_notifications', 'frappe.workflow.doctype.workflow_action.workflow_action.process_workflow_actions', 'frappe.automation.doctype.assignment_rule.assignment_rule.apply'], 'on_trash': ['frappe.desk.notifications.clear_doctype_notifications', 'frappe.workflow.doctype.workflow_action.workflow_action.process_workflow_actions'], 'on_update_after_submit': ['frappe.workflow.doctype.workflow_action.workflow_action.process_w...
      handler = 'erpnext.setup.doctype.transaction_deletion_record.transaction_deletion_record.check_for_running_deletion_job'
      composed = <function Document.hook.<locals>.compose.<locals>.runner at 0x7f2fc8827240>
      compose = <function Document.hook.<locals>.compose at 0x7f2fc8930d60>
      f = <function Document.run_method.<locals>.fn at 0x7f2fc887fa60>
  File "apps/frappe/frappe/model/document.py", line 1349, in runner
    add_to_return_value(self, fn(self, *args, **kwargs))
      self = <JournalEntry: ACC-JV-2025-00008>
      method = 'validate'
      args = ()
      kwargs = {}
      add_to_return_value = <function Document.hook.<locals>.add_to_return_value at 0x7f2fc8b8e840>
      fn = <function Document.run_method.<locals>.fn at 0x7f2fc887fa60>
      hooks = (<function validate_accounting_period_on_doc_save at 0x7f2fc81f7560>, <function validate_expense_claim_in_jv at 0x7f2fc87f00e0>, <function apply at 0x7f2fc81e9c60>, <function check_for_running_deletion_job at 0x7f2fc81eb880>)
  File "apps/frappe/frappe/model/document.py", line 1004, in fn
    return method_object(*args, **kwargs)
      self = <JournalEntry: ACC-JV-2025-00008>
      args = ()
      kwargs = {}
      method_object = <bound method JournalEntry.validate of <JournalEntry: ACC-JV-2025-00008>>
      method = 'validate'
  File "apps/erpnext/erpnext/accounts/doctype/journal_entry/journal_entry.py", line 124, in validate
    self.validate_party()
      self = <JournalEntry: ACC-JV-2025-00008>
  File "apps/erpnext/erpnext/accounts/doctype/journal_entry/journal_entry.py", line 553, in validate_party
    frappe.throw(
      self = <JournalEntry: ACC-JV-2025-00008>
      d = <JournalEntryAccount: 0bloqs4m9u parent=ACC-JV-2025-00008>
      account_type = 'Receivable'
  File "apps/frappe/frappe/__init__.py", line 606, in throw
    msgprint(
      msg = 'Row 4: Party Type and Party is required for Receivable / Payable account Debtors - AJB'
      exc = <class 'frappe.exceptions.ValidationError'>
      title = None
      is_minimizable = False
      wide = False
      as_list = False
      primary_action = None
  File "apps/frappe/frappe/__init__.py", line 571, in msgprint
    _raise_exception()
      msg = 'Row 4: Party Type and Party is required for Receivable / Payable account Debtors - AJB'
      title = None
      raise_exception = <class 'frappe.exceptions.ValidationError'>
      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 0x7f2fc8825e40>
      inspect = <module 'inspect' from '/usr/lib/python3.12/inspect.py'>
      out = {'message': 'Row 4: Party Type and Party is required for Receivable / Payable account Debtors - AJB', 'title': 'Message', 'indicator': 'red', 'raise_exception': 1, '__frappe_exc_id': 'e61616361880bcf3beb761cf5415a72fb5876022c5175c923b7ae592'}
  File "apps/frappe/frappe/__init__.py", line 522, in _raise_exception
    raise exc
      exc = ValidationError('Row 4: Party Type and Party is required for Receivable / Payable account Debtors - AJB')
      inspect = <module 'inspect' from '/usr/lib/python3.12/inspect.py'>
      msg = 'Row 4: Party Type and Party is required for Receivable / Payable account Debtors - AJB'
      out = {'message': 'Row 4: Party Type and Party is required for Receivable / Payable account Debtors - AJB', 'title': 'Message', 'indicator': 'red', 'raise_exception': 1, '__frappe_exc_id': 'e61616361880bcf3beb761cf5415a72fb5876022c5175c923b7ae592'}
      raise_exception = <class 'frappe.exceptions.ValidationError'>
frappe.exceptions.ValidationError: Row 4: Party Type and Party is required for Receivable / Payable account Debtors - AJB

@519_Hamza_Habeeb any update?

frappe Version is-15

please show your journal entry list

please check sir

Hi @shubham_agrawal

Please use payroll payable account in payroll entry and keep that GL account’s account type empty as below;

Which one account type i have selected ?

its allready empty

please show Debtors-AJB

1 Like

Just know i change account type

i will check give me on min .

Issue solved

1 Like