ListView Not Rendering Data (Scoped Slot Empty) - Replicating CRM "Deals" in Custom App

Hi Frappe community,

I’m trying to replicate the CRM module’s Deals functionality in my custom app (OneSurety). Here’s my setup and issue:

Context

  1. Custom App: OneSurety with a menu item Operational (mirroring CRM > Deals).
  2. DocType: Created Guarantee Insurance Request — backend data loads correctly (confirmed via API/logs).
  3. ListView: Created OperationalListView (similar to DealsListView in CRM) but data doesn’t render in cells despite columns appearing correctly.

Problem

  • The table structure renders (columns exist), but cells are empty.
  • Debugging shows the scoped slot item is empty, though the API response contains data.

What I’ve Tried

  1. Verified column fields match the DocType (Guarantee Insurance Request).
  2. Checked permissions (DocType is accessible).
  3. Compared OperationalListView.js with DealsListView.js (structure seems identical).
  4. Confirmed data arrives via network tab (no console errors).

Question

  • What could cause the scoped slot to receive empty data even when the API response is valid?
  • Are there mandatory properties (e.g., meta fields) required for ListView to populate data?
  • Any known pitfalls when replicating ListViews across apps?