Employee Checkin list view freezes/unresponsive with 6600+ records

Issue:
The Employee Checkin list view (desk/employee-checkin) becomes extremely slow and triggers a browser “Page Unresponsive” dialog when the doctype has around 6,600+ records. The page hangs on load/refresh and sometimes requires exiting the page entirely.

Steps to Reproduce:

  1. Have ~6,000+ records in Employee Checkin doctype
  2. Navigate to Employee Checkin list view
  3. Try to load/refresh the list (especially with page length set to 100/500/2500)
  4. Browser shows “Page Unresponsive” prompt; page takes very long to render or freezes

Expected Behavior:
List view should load within a reasonable time regardless of page length, ideally with efficient pagination that doesn’t try to render all rows at once.

Environment:

  • ERPNext / Frappe HR version: [16]
  • Frappe framework version: [16]
  • Browser: Chrome (latest)
  • Approx. record count in Employee Checkin: 6,619

What I’ve tried:

  • Reducing page length to 20
  • Clearing browser cache
  • Applying date-range filters (helps but list still slow on initial load/sort)

Question:
Is there a recommended way to handle large Employee Checkin datasets (indexing, archiving old records, or a config setting) to prevent list view from freezing? Would appreciate guidance on best practices for cleaning up/archiving old checkin data or any server-side settings to improve list rendering performance at this scale.

We recently added virtualization to the list view so this problem should be fixed in newer versions. feat(list-view): virtualization by sumitjain236 · Pull Request #40238 · frappe/frappe · GitHub

In this case, using a smaller page limit is recommended. If you want to view a lot more data at once, for now you can switch to the Report View and then load all the rows.

1 Like