🤔 How to: Troubleshoot app freezing up or flashing a screen after adding a row?

Hello!

The forum doesn’t have recent mentions on delays/lags/ screen freezes.

But two things are happening:

  1. Hit submit → the processes and shows the message .-> screen resets… and then it comes back up. lol Sometime it will flash for a second and other times it will stay for a while.
  2. Some devices will show some components but not others. The I.T. side of me expects lag times so I’m hoping this is "normal’.

Just as a reference point:

  1. The app currently doesn’t have any active users except me testing it out.
  2. None of the actions have a “wait” or a ‘go back’ anymore after disabling them to no avail.
  3. The laptops, tablets and cell phones are in working order and run youtube streaming just fine.
  4. MOST notably… I am new to Glide Apps, so I will never 100% rule a misstep on MY part!! :rofl::saluting_face:

Thanks

Jamie

More information about the action sequence would be helpful, including a screen shot.

  • You mention that a row is added. Is that all that happens in the action?
  • If there are more steps - what are they?
  • Is this a native form, or a custom form?
  • If a native form, is there any onSubmit action?
  • If yes, what does that look like?

If you want to help diagnosing this, you need to show us what we are trying to diagnose :wink:

2 Likes

As a complement to Darren’s questions, I would add:

  • Keep your set up as super simple as possible.
  • To add an item, use a native form provided by Glide (“Show Form Screen” action), not a custom form
  • Use native actions provided by Glide. If really you want to create your own custom actions in the action editor, fine, but keep your sequences simple (only one or two steps maximum, no branches)
  • Avoid conditions on your actions.
  • Avoid the onSubmit action. If really you feel you cannot live without it, fine, but make sure that whatever action is performed on-submit does not use the data that was submitted in the form.
  • If you do need further actions to be performed on data that was just submitted in a form, add a separate button with a separate action.

Lag is one thing: what data sources are you using (Glide Tables, Google Sheets, Airtable, etc.)?

Components showing on some devices but not others is another. Are you using the “Get Device Info” column and applying visibility conditions based on that data? Could you share more information?

2 Likes

Uh oh. Ummmm… yeah soooo… since you put it thaaaat way…
I might need to reorganize. lol

I have list of topics or strategies. That all have mathematical formulas.
image

The screens are Custom because it was easier to make some adjustments.
image

I have button blocks pointing to custom actions that have conditions added.
It’s configured to “Add Row” to quite a few columns.

Since the interface needs to be as “clean” and uncluttered as possible, combining the actions from one button made the most sense.

I’m a Glide novice, so if there is a way to accomplish the task more efficiently, I am open to it!

I am using Glide tables exclusively without any “Get Device info” features.

Classic :sweat_smile:

There are essentially 2 reasons why our setups in Glide might not work as intended:

  1. We didn’t spend enough time in Glide Docs in the first place to understand the basics
  2. We are attempting a setup that is too complex for our skill level

That’s it really.

(Actually I might argue that 1 is included in 2, but let’s not split hairs.)

I see why you have conditions and branches and all that jazz. It’s tempting. But I would refrain. Complexity is difficult to build, to troubleshoot, to maintain. Think of the person you will hand off the project to, and that person could be your future self: when it’s too complex it’s hard to maintain, especially since we cannot include comments (yet) in the builder.

To help you troubleshoot:

  • I would split up all of your actions into the smallest units they can be and get them all to work first. Even if that means having long action menus in your app (at first). Then only can you start putting them together again and see when and where they break.
  • There’s no need to delete or edit the actions you’ve already created: duplicate and put them to the side.
  • One thing that stands out in your custom action is “Add row” followed by “Set column values”. Always assume that in a custom action all steps fire at the same time. Ideally steps should not be accessing the same data, or better yet step shouldn’t be dependent on one another. Here for instance you could avoid the action add-a-row-and-write-to-the-same-row at the same moment. It might work the way you set it up, but it might also not, personally I avoid such setups. At the very minimum add a wait action in between and set it to 1-3 seconds, though even that isn’t failproof.

Long answer to say: simplify.

1 Like

Thank you very kindly for your reply and insight.

What I am reading here like, the "simplified’ version is how I had it at first with each screen (strategy) having its own button block and action.

I did at one point also have the “wait” action as well, so we will circle back to that.

Thanks again.

:saluting_face:

What is the purpose of setting those 35 column values in each branch?

Is that to reset the form state?
If yes, I would recommend doing that when the form is opened, rather than when it is submitted.

Yes sir, to reset the form state.

Since these are custom screens it was my understanding that a button block with actions was how to get the form clear.

How do I implement what you are referring to?

Am i changing the action sequence after “add row” to something else?

Thanks

No, I mean when you open the form, not when it is submitted.
Presumably you have an action that opens the form?
Modify that action so that it clears all the user specific columns.

I like your idea of having a button up front that clears the form,

I’d like to properly excute the plan so here’s a look at how this is set up:

To give the user an interface, I have a “Menu” screen based on a Menu Table.

(The goal was to have a list of choices that will not clutter up the native menu on the left because more items will be added later.)

The Main menu is a custom screen with collection components with an item click to “go to” tab action.

This sends them to the respective tab.

Taking them to a screen to input data in another table.

Input table holds the main information.
image

To perform what you suggested, I think I would have to put the menu items in the input table, correct?

No particular reason it wasn’t in there other than not knowing it should be.

Thanks for the reply!

Jamie

In your user profile table, create a single value column that takes first->whole row from your Input table. You can then extend your go to tab actions with a set column values step that clears the input values via that single value column.

:saluting_face: Roger that, Captain!

Thanks for your input and insight!

-Jamie