Submit Button Stops Triggering Queries in Parent App After Deleting ListView Item from Imported Module

Hi Retool Community,

I'm encountering a strange issue with my app where I import a listView based module. Below you'll find the details.

Issue Description

I have a main app that imports a module containing:

  • A list view
  • An "Add Item" button that inserts a new list item
  • Each list item is a form with multiple input fields
  • A Delete Item button that removes the list item

Everything works as expected until I:

  1. Add an item to the list
  2. Delete that item
  3. Try to submit the main form

At this point, the submit button stops working entirely—no API call is triggered, and no console logs appear, as if the event handler is removed. However, form validations still work, so the issue seems specific to the submit action.

Steps to Reproduce

  1. Import "Module - Community Version" and "App - Community Version" into Retool.
  2. Import the module into the app.
  3. Add an item using the "Add Item" button.
  4. Delete that item.
  5. Click the submit button → nothing happens!

Screenshot of the standalone module as well when imported in the main app are below.

You can find the two JSON files along with a screen recording of the issue here.(retool-app-items - Google Drive).

Thanks in advance for your help!

Welcome to the community, @Muneeb_ul_Hassan! Thanks for reaching out and for such thorough documentation of the issue.

After some testing, I actually think it is a validation issue - at a surface level, at least. Trying to submit the top-level form after deleting an element from the listView does still trigger the Invalid event handler. You can verify this by running tasksForm.validate() in the console, as well.

My guess is that this has something to do with the way we virtualize listView elements, in which case switching to the legacy version of the component might help. Regardless, I'll reach out to the team internally and follow up here when I have an update. :+1:

UPDATE: I was curious to see if I could build something similar from scratch and it seems to working. I'm curious if you could implement a similar architecture in your own app. Here's the example (26.8 KB) and module (18.0 KB), if you want to give it a shot!