FlutterFlow / flutterflow-issues

A community issue tracker for FlutterFlow.
130 stars 26 forks source link

Critical Issues with Execute Callback and Refresh Database Request After November 13, 2024 Update #4916

Closed absolutitecinfo closed 6 hours ago

absolutitecinfo commented 5 days ago

Can we access your project?

Current Behavior

After the FlutterFlow update released on November 13, 2024, two critical functionalities stopped working as expected:

Execute Callback:

When using the "Execute Callback" action in a popup, the callback fails to execute, leaving the process incomplete. This is particularly problematic when updating a record via a popup, as the callback is essential to refresh the parent list and reflect changes in real-time. Refresh Database Request:

The "Refresh Database Request" action no longer updates the UI after data modifications (insert, update, or delete). The changes are only visible after manually reloading the page or component. Both of these issues worked perfectly before the update.

Additional Observation: These two issues appear to be interconnected, as they both involve failures in state synchronization and real-time UI updates. Errors in the browser console, such as Bad state: No element, [Violation] 'requestAnimationFrame' handler took ..., and [Violation] 'setTimeout' handler took ..., suggest problems with asynchronous state management or rendering introduced in the latest update.

Expected Behavior

The Execute Callback action should execute successfully and allow the parent list to refresh in real-time. The Refresh Database Request action should immediately update the UI after any database changes, without requiring a manual reload.

Steps to Reproduce

For Execute Callback:

  1. Create a list page displaying records from a database.
  2. Add a button or icon to open a popup with details of a record.
  3. Configure the popup to:
    • Update the selected record when the save button is clicked.
    • Execute a callback to refresh the parent list.
    • Close the popup.
  4. Perform the operation and observe the behavior.

For Refresh Database Request:

  1. Create a list page displaying records from a database.
  2. Add actions to insert, update, or delete a record.
  3. Configure the "Refresh Database Request" action after these operations.
  4. Perform any of the operations and observe whether the list updates automatically.

Expected Results:

In both cases, changes should reflect immediately in the UI.

Actual Results:

The Execute Callback action fails to execute, leaving the parent list unchanged. The Refresh Database Request action does not update the list until the page/component is manually reloaded.

Reproducible from Blank

Bug Report Code (Required)

IT40ifiCuLJ6m7hC+qiILfdFnj4hQTI2W5A3u9h7aCsofePrOpkAf8/7UFtUcN+gYGxHeGGGiXEX/MmOuN7hJ/YrPSeaGZR4z5Z2VQrJeFG6aZCbDoS3b39tGdhYJlTD0LbQ3xB5Ns9odFoS7WeQGe+tcD7AQpCyPXo/MeaoXdeK2SrDX1iXc2URm05KZDPz

Visual documentation

image

Environment

- FlutterFlow version: v5.0.11 (Launch 13-nov-2024)
- Platform:
- Browser name and version: Google Chrome
- Operating system and version affected:

Additional Information

No response

paulperez-dev commented 3 days ago

Hi @absolutitecinfo! I wasn’t able to reproduce the issue on my end. Could you please try reproducing it in a blank project? This would help us isolate the problem.

leighajarett commented 1 day ago

Hi! Just following up here, any chance you can provide more information? The bug report code you provided points to a button, which doesn't open a custom popup or execute a callback.

Can you send us the bug report code to the part of your app that triggers the popup / callback? And can you include a screenshot or video to help us isolate the issue?

We've been trying to reproduce but have not been able to. Without this information we aren't able to figure out the root cause of the issue. Thank you so much!

absolutitecinfo commented 1 day ago

Apologies for the delayed response. It’s a national holiday here in Brazil, and the kids are home! Despite already having reported the step-by-step details of my issue in the ticket I opened, I’ve made an extra effort to create a tutorial demonstrating the two critical cases we’re facing, where this behavior is impacting several ongoing projects.

Also, in the same ticket, I had already included the Bug Report Code (Required). However, here is my project ID for your reference: bluetooth-i-o-tv5-g1jvyu.

The first case involves the Refresh Database.

image

image

The second case involves Refresh being invoked within an Execute Callback.

image

leighajarett commented 1 day ago

Thanks so much!

absolutitecinfo commented 6 hours ago

I’d like to share my experience here to help other developers.

After the latest update on November 13th, I was able to handle the migration of custom codes without much trouble. However, I encountered significant issues with action blocks that invoked Database Refreshes through Execute Callback, as well as with queries using filters with multiple conditions—even in new projects.

With the most recent update on November 20th, I noticed that new projects were working smoothly. However, in projects migrated from V1 to V2, something very peculiar occurred. If I created new screens using the Refresh, Callback, and Filter procedures, everything worked fine. But the same wasn’t true for older screens.

This led me to suspect that some sort of system artifact or “black box” issue might have occurred during the migration process. So, I took the following steps:

Cleared my cookies.

Reinstalled FlutterFlow.

For screens that weren’t working, I deleted and recreated the component—for example, a DataTable.

And bingo—it started working!

leighajarett commented 6 hours ago

Thanks so much for sharing!