What changed in last 12, 24, 36 hours? ListView data passing

Good Morning -

I've got an app that is in production. This morning I got a notice from the team that they are getting an error, specific details below.

This app last had a change on September 23rd for some text formatting, and before that the last change was July 10. This is used daily and my point is the app has been rather robust though I know well how one API change can cause problems.

I'm wondering if something changed under the hood with Retool in the last handful of hours/days, that it may have changed how code/queries run. Perhaps a bold question on my part, I'm sure daily/hourly you are pushing new code, updates, fixes, etc.

I believe the team last used the app Tuesday morning (2025-09-30 EST) with no issue. Here Wednesday morning (2025-10-01 EST) we are getting this error.

Structure/Error
I've got a ListView. It contains checkboxes.
I've got a function CheckboxBehavior. The event handler on Checkbox runs this function.

The error I'm getting is that when a user clicks on a check box, the check is there briefly, then disappears and the error shown is: "checkboxBehavior Cannot read properties of undefined (reading 'map')" .

The function CheckboxBehavior runs when a click occurs on a checkbox.
The top of the js function CheckboxBehavior has the following lines:

let checkboxArray = listView_orders.data.map((_, index) => {
  return listView_orders.instanceValues[index]?.checkbox ?? false; // Default to false if undefined
});

and according to the console log, it is that first line causing the problem. When I hover on the listview_orders.data I can see what I expect to be there, it isn't undefined.

I'm not seeing any changes in the structure of the function or elements in the diff checks of the version deployed in September or July. So, this leads me to wondering if something changed under the hood, and perhaps it is now that a weakness is shown in the code. I'm not sure yet how to fix or improve.

I'll add that when I preview past deployments from July, I get this same error. So again, leading me to either data in my app or some sequencing/under the hood sort of changes that is causing this.

Maybe a bit of rubber ducking.

I'm doing this:

console.log("listView_orders:", listView_orders);
console.log("listView_orders.data:", listView_orders?.data);
console.log("typeof data:", typeof listView_orders?.data);
console.log("isArray(data):", Array.isArray(listView_orders?.data));
console.log("listView_orders.instanceValues:", listView_orders?.instanceValues);

And getting this:

[checkboxBehavior] listView_orders:
{item: Object, i: 0, scrollIntoView: "__RETOOL_JS_API__", setHidden: "__RETOOL_JS_API__", scrollToIndex: "__RETOOL_JS_API__"…}

[checkboxBehavior] listView_orders.data: undefined

[checkboxBehavior] typeof data: undefined 

[checkboxBehavior] isArray(data): false

[checkboxBehavior] listView_orders.instanceValues: undefined

Clearly, if at the top of the code it thinks listView_orders.data is undefined, that is why the code is throwing an error.

So on to looking at listView_orders or the checkboxes under it to see if something changed in how data is passed.

The event handler of checkbox (in the ListView) has this script:

console.log("listView_orders:", listView_orders);
console.log("listView_orders.data:", listView_orders?.data);
console.log("typeof data:", typeof listView_orders?.data);
console.log("isArray(data):", Array.isArray(listView_orders?.data));
console.log("listView_orders.instanceValues:", listView_orders?.instanceValues);

checkboxBehaviorSource.setValue("print")
checkboxBehavior.trigger();

The top of my checkboxbehavior still has its debug stuff:

console.log(checkboxBehaviorSource.value);
console.log("listView_orders:", listView_orders);
console.log("listView_orders.data:", listView_orders?.data);
console.log("typeof data:", typeof listView_orders?.data);
console.log("isArray(data):", Array.isArray(listView_orders?.data));
console.log("listView_orders.instanceValues:", listView_orders?.instanceValues);

When I check a checkbox the console shows this:

[checkbox_print] listView_orders:
{item: Object, i: 19, scrollIntoView: "__RETOOL_JS_API__", setHidden: "__RETOOL_JS_API__", scrollToIndex: "__RETOOL_JS_API__"…}
[checkbox_print] listView_orders.data: undefined
[checkbox_print] typeof data: undefined 
[checkbox_print] isArray(data): false
[checkbox_print] listView_orders.instanceValues: undefined

[checkboxBehavior] print
[checkboxBehavior] listView_orders:
{item: Object, i: 0, scrollIntoView: "__RETOOL_JS_API__", setHidden: "__RETOOL_JS_API__", scrollToIndex: "__RETOOL_JS_API__"…}
[checkboxBehavior] listView_orders.data: undefined
[checkboxBehavior] typeof data: undefined 
[checkboxBehavior] isArray(data): false
[checkboxBehavior] listView_orders.instanceValues: undefined

Then, if I simply click "run" on the function, I see this:

[checkboxBehavior] print
[checkboxBehavior] listView_orders:
{pluginType: "ListViewWidget2", data: Array(39), _enabledInstances: Object, _primaryKeys: Array(39), enableInstanceValues: true…}
[checkboxBehavior] listView_orders.data:
(39) [Object, Object, Object, Object, Object, Object, Object, Object, Object, Object, …]
[checkboxBehavior] typeof data:object 
[checkboxBehavior] isArray(data):
true
[checkboxBehavior] listView_orders.instanceValues:
(39) [Object, Object, Object, Object, Object, Object, Object, Object, Object, Object, …]

From this, I can see that listView_orders is changing in the brief instant from the event behavior script running to the function running. Still no .data, but changes in the information like i: 19 vs i: 0.

Then I can also see that simply running the function standalone produces an object with the data.

So maybe something change in how data is passed, and my code was relying on that and it shouldn't be?

So where things stand is I removed references to ListView_orders in my code and came up with some other ways to accomplish passing info. Seems a bit odd.

I'd love to hear if anyone else ran into an issue like this or what changes, if any, has been in Retool app components in the last little bit. I don't have a smoking gun for this error, it would be nice to have closure.

Hi @Awestruck,

Apologies for the issue. Is your Retool instance on the cloud or self-deployed? I am assuming cloud hosted but just wanted to be sure.

My guess is that there was a minor change to the code, given that your app was working fine and is now getting error messages without any changes. I can check with the team and see if there were any changes made in the time range that you isolated this behavior to beginning.

Do you have a simple version of the container, list view and checkbox component that you could export for me to import and test things out with?

Hi @Awestruck,

I was doing some digging and it looks like we may have had an incident with our code around the time you would have experienced these issues. Which we have since rolled back.

Let me know if you are still experiencing this behavior!