Horrific data-pass bug... Can ANYONE Help?

I have a bug absolutely plaguing my app, and I can not for the life of me explain it. My screens are failing to pass data when linking back to a screen that had originally received the data from a list or whatnot. I’ve attached a demo video.

For context, I’ve completely simplified the screens to demonstrate the problem - with a single link on each page. I know in this scenario, you’d usually use the “back” link just to go back, BUT, that’s not what I’m trying to do. This is affecting nav bar links - so obviously on a nav bar, even if you’ve just come from the page that supplied the data, you still are going to have a “hard” link back to the page that supplied the data. When a nav bar link stops passing data like this, it then cascades and by circular logic of the original data-bearing page now not having access to the data, and it breaks everything. Funny thing is, the app will still pass data through that link, meaning if I go click the link, the original screen will have the data that it needs to display right. BUT, this completely breaks the editor, and once there’s a link that fails to pass data, the data isn’t available in the editor to make additional links, do logic, or otherwise access that data for components, on all screens that are in the link chain.

I am probably am up to 24-30 hours of troubleshooting this one issue… New screens I make now exhibit the same bug. Literally completely new and blank screens aren’t working. As you’ll see in the video - I made those screens for demonstration. Older screens work fine, but new screens I create, and the few older screens that were originally affected are just completely broken. Can anyone shed some light on what is happening?

Here’s the video

Hi @tbtilton ,

Can you make it cloneable and state an example what is should be doing versus not ?

I’ve noticed that the data usually stops pushing after screen #3 of a process.

Allow me to explain.

The data was passed from a different screen into the XXX Project Dashboard screen. I’m assuming the last screen was the one that created the project.

That means that the data is available from the other screen into the XXX Project Dashboard screen and then is available for 1 more screen.

With the button selected, click the menu button on the top and select “Make a list”. Set the list to Projects > logged in user projects.

Filter the list to only display this current project. I recommend having a number parameter labeled as “Project ID”. Make sure that this number is unique when creating a project.

For example, when creating a project, use a formula to set the default value automatically for Project ID to “All Projects Count” + 1. This will ensure that the project ID is unique for each new project that’s created.

So if you do this, you’d add the filter on the list where “Project ID” is equal to “Current Project ID” and set the maximum items to 1.

This will then allow the project data to be passed on to another screen.

User selects a project from a list.

Takes them to Project Dashboard.

On project dashboard, there is a tab bar with 5 links:

Project Dashboard
Project Messages
Project Materials
Project Safety
Project Summary.

The user can tab through the dashboard and the 4 other data screens associated with the project. This was working. And, if I build a new app from scratch, a link-through from a list seems to work fine with a 5-tab bar “within” the list item.

Also, this had been working for weeks. The only changes I made when this started was to go through and add the main app tab bar as a hidden “menu” element so that the user could navigate back out of the project management section as needed. When the problem started, first thing i did was delete all that, but the data loss problem has persisted. Within the project management section tab bar.

I will try to post more information tomorrow if it helps.

I definitely understand the workaround you explained @Flawless . I hope I don’t have to resort to that though because on a 5-link tab bar, that’ll be 20 “mini-lists” to make it work. Things are already slow enough, I worry that would be quite an additional performance hit. Definitely appreciate the input though; clever and insightful as always.

The more info you provide, the easier we can figure things out my friend :sunglasses:

So with your explanation, I’ve got the perfect solution for you.

Give me just a bit. I’ve got a tutorial for you that I created somewhere in my archives.

@Yongki @Flawless

I Duplicated my entire app, then deleted everything except the screens in question, including all of the components on the screens, and have included a clonable link below.

Funny thing is, the behavior is still broken, but it’s acting differently now. Rather than showing “Now Unavailable on Project Dashboard Screen”, it just shows that it’s not passing data. AND, it doesn’t actually break all the screens in the editor like it does in my main app… I dunno.

Also, the function of my toggling of the “main menu nav bar” has broken. It is now broken in my main app too, so I’m going to need to do a workaround. I think this probably has to do with the fact that Input values, changing input values, and passing/reading input values between screens seems to have completely broken on the platform and only randomly work over the last week or 2. I’ve seen the other complaints, and it has definitely screwed up my whole app.

Anyway, here’s the clonable link, but read on below for an even more disturbing account of what I’ve run in to.

SO, here’s the real learning experience I got from doing this: Through this experiment I may have discovered why I always feel so gaslighted while working in Adalo - It actually is an indisputable FACT that things you do will randomly disappear, revert to prior states, or otherwise just be buggy AF outside of your control. I have countless times spent hours working on stuff, having nothing work right, then upon reviewing older screens or dependent screens I find stuff missing, screens that aren’t set up, etc, and I would be like, “I KNOW I DID THIS WTF???” But I’d then assume my brain is just dumb, and I’d do it all over again and move on.

WELL, Here’s the thing. I duplicated this app. Cleaned up the 5 screens in question so everything would be easy to see. Then deleted all the other screens. This was last night. This morning, I worked on the screens - deleting and re-setting all of the links on all of the screens, just to make sure there wasn’t some small error that was jamming things up. I then created 4 New screens (to demonstrate that data passes just fine through many levels of screen). The first screen I created was a Modal, and I created it by making a button on the Project Dashboard then creating link and making new screen. Then I created the 2nd new screen with the link on the Modal. Added a button/link to the new screen, created another new screen, and so on.

I added a button on the 4th screen, and linked it back to the Project Dashboard. Broken. I expected that. So I deleted the link. But then, for good measure I decided to run a test to make sure that everything was working and the data was passing through my 4 new screens fine.

I go to the previewer, and the Modal link on the project dashboard doesn’t work. just a dead click. hmmm. Back to the editor. The link is definitely there. Definitely set up right. Screen connection showing. OK, I’ll play, delete the link and put it back. Maybe fixed. Go to the previewer, and still nothing. Broken, link not working. 5 more minutes of deleting and rebuilding. Nothing. everything is definitely 100% right in the editor. I mean, this is a god damn button, with a link to another screen - literally the most basic and ubiquitous thing you can do here. Why not work??? I wonder if I refresh the editor, if it will fix the issue - I refresh the editor and… AAHHHH

About 2/3rds of the screens I deleted last night appear, all randomly smattered around the canvas. Most of the new screens I created today were there, but the Modal screen was missing. A couple of the changes I made to elements this morning were missing or wrong, but for the most part, all the changes stuck. God Damn, Yikes.

Below is a video I started right after it happened. It shows the mess, then I re-delete the screens, make a few changes, and refresh again, and another, less crazy mess. Again delete, make changes/fix, and refresh and finally It looks like everything “took”

WHAT IS HAPPENING ADALO??? This behavior might explain why I’ve been increasingly feeling crazy, frustrated, at my wits end. Is anyone else experiencing this or is it just me?

Here’s the video, for what it’s worth:

I see, makes much more sense now. I haven’t completed making the tutorial, got a little wrapped up in things.

I copied your menu and operator into a blank app so that I can explain quickly without the app lag.

Follow these directions and you should be good.

Instead of pushing users to new screens for each set of the data (dashboard, messages, materials, safety, summary), add another input called “AdminViz SubList” and default value to 1.


Move your operators group up. Then, duplicate all of your icons. Place an invisible rectangle behind each icon set and group each of them together. You should have 5 groups that contain 2 icons each.

For each of these icons sets, we’re going to assign a number.

Dashboard = 1
Messages = 2
Materials = 3
Safety = 4
Summary = 5

For the Dashboard icon set, set the visibility of the 100% opacity icon to sometimes visible if “AdminViz SubList” is equal to 1. Set the visibility of the 50% opacity icon to sometimes visible if “AdminViz SubList” is not equal to 1. Add an action to the 50% opacity icon to “Change Input Value > AdminViz SubList” to 1.

Then do the same for the other groups but use their numbers.

Then, add sections for the content above the menu. Set the visibility of each section to sometimes visible if “AdminViz SubList” is equal to the number of the content you want to display.

By having the default value of 1 in the input, it will load the “Dashboard” content first and hide the rest.

So like if I have the content set up like this, you can see how Safety = 3:

You can add lists within these groups and since they are hidden, it will only slightly hinder performance. (The user may see a few loading spinners when the screen first loads).

This puts all of the content on 1 screen and the project information is accessible for the next screens when linking.

1 Like

You’re a hero, @Flawless .

Excellent take. Clever solution. This is a method I’d used in several other areas of my app, but It just never occurred to me to use it here - it seemed like just much to much content for a single screen. I had made the assumption that performance would be severely hit. I appreciate knowing that it should work, and I will be implementing it immediately.

And while I appreciate the brilliant help and workaround, I am left wondering WHY? Why will data pass through many many screens, and even in circles among those screens, but then breaks when it goes back to the first screen in the chain? Why is the first screen that receives the data different from the 3rd or the 10th? Why did this actually work OK for a while then stop? Why does it still SOMETIMES work? (in my main app, I can link back to the first screen from 2 of the other screens without issue, but the other 2, and any new screens I make, won’t do it) Are those screens like “grandfathered” in and not affected by this bug? AND, why did input values stop working across screens? Questions, QUESTIONS.

Also, am I alone experiencing the insanely huge bugginess/glitching in the editor at large, as clearly evidenced by that video I posted? I mean, it explains SO MUCH. It explains why I’ve had to spend over 700 hours of crazy-inducing gaslighted app-building to produce what should have been built in like 300 hours.

Bu here’s my biggest question, oddly enough: How do you guys POSSIBLY make a living off this software when a day’s work (or multiple day’s work) can just glitch away, or you have to literally spend days going component-by-component through your app to find where some configuration you’d previously finished has reverted, changed or otherwise stopped working and needs to be redone or completely deleted and rebuilt? It’s taken a lot of accumulated hours of work here before I’ve come to realize just how absolutely borked the platform is… I think I’m going to stick it out, because the results are amazing and I’m almost there, but WHY oh WHY do you guys stay? I would dread having my livelihood depend on consistently producing apps with this platform. I absolutely CAN’T WAIT for the day when the only thing I see of Adalo is the front end of the App I built with it. I don’t know how I could go on if all I saw on the horizon was Adalo Editor and more Adalo Editor…

Anyway, many thanks again @Flawless. You are super.

I hope this makes sense, this is the logic from my understanding.

Data is NOT sent to the screens where the red Xs are.

Essentially, if you update the “Current data”, every next screen can contain the current data.

3 Likes

This would make sense.

But, in my app and in the cloneable app I posted above, you can see the data passes fine from, say, the 3rd screen to the 4th screen back to the 3rd screen, then to the 5th screen, back to the 4th screen, back to the 3rd screen, etc. etc. Basically, data always passes back and forth between any number of screens as long as they don’t pass it to the first screen after the list screen.

This makes me wonder… Would another workaround that might not be so time-intensive be to just drop a blank screen between the list page and the “dashboard”, that way the dashboard isn’t the first after the list and isn’t affected?

My point is that you cannot link to the "Current Data (Main Screen) without the data source of a list.

The Dummy Screen Works.

See Cloneable App:

The dummy screen needs to have links to all the “tab level” pages on it for it to work. I had just made a pass-through dummy screen that directly linked to the dashboard but that didn’t work.

Downstream data passing works how you’ve shown in that diagram, @Flawless .

Interestingly enough, I’ve re-created the original bug in my main app - you’ll see that making a link back to the dashboard screen from any screen that’s further downline than the 5 main tab screens will give you the data error “Now Unavailable on Dashboard Screen”, even though it’s no longer the “current data” screen. Also interestingly enough, this doesn’t (at this moment) completely break the whole section in the editor. However in my experience, it could at any time. What do you make of this?

While it’s wicked dumb, I am glad that at least a hazy pattern is emerging that I think I’ll be able to build around for the time being - It has been a multi-week frustration-fest up to this point heh…

Where is that screen that you mention ?

While your app has grown large enough, to debug we need to contain the issue as small as possible, one at a time.

Adalo’s editor need to sync the data back and forth and it needs to queue to be properly sync, because lots of other users are doing the same thing, using the pipeline to have their instructions updated in the cloud using the editor.

It is not hard to give Adalo a moment to complete their sync, cloud sync is different experience with local sync, we may have been spoiled by tech giants such as Google that sync is instant and invisible, the fact is they need time, cause data pipeline is shared.

It’s on screen 4 - in the button that links back to Project Management Dashboard

I agree, and the sync delay is certainly detectable - it can sometimes take a minute or two for changes to propagate to the PWA, and I notice it when I’m switching back and forth to test changes. I’m assuming when changes show up in the PWA, they’ve supposedly synced to the servers, no?

This is different though - Changes I had made the prior evening, literally 10+ hours prior, were glitched/reverted back. A screen that I had created 10 minutes or so before was missing, while there were several screens that I had Just made were still there.

In hindsight, I just feel like this explains a lot for me - I’ve often found myself absolutely perplexed by the appearance of screens I thought I’d deleted - screens missing that I’d thought I’d created and finished. All the time I had assumed I was just imagining things, and just wasn’t keeping my stuff straight. But today I witnessed it happen in real time, and was able to Identify exactly what had happened, because the app was so diminished in size and complexity that there was no question what had happened.

I dunno, I suppose there is no point in complaining since there’s probably literally nothing that can be done. I think I’d just feel better if I knew for sure it wasn’t just me, and/or maybe people searching this in the future can be reassued that they’re not necessarily crazy or incompetent - it might literally just be the platform playing tricks on ya!

Okay, found it.

This is about hierarchy of linked data, Adalo make it easy for us to make collection data available to the next screen by using list.

This is how to navigate parent-child relationship easier.

So to prevent the probable error on how Adalo recognize the linked data, I put make-list button for that.

As you can see in the below pictures.


I share your concern, have been there and probably still there, but different issues.

Well, I guess every good things come with package with not so good thing, it just how we tolerate the not so, to make us take advantage of those goods.

If an app has grown to be large, and we don’t see the recent change we have applied, I usually change the name of the screen in order to have a trigger that this screen need to be refresh in the engine, but this is not every time, only if I feel it doesn’t add up.

Thanks for that tip. I have definitely found that some bugs and problems resolve by doing random things like renaming or deleting and re-doing components. It is frustrating, but manageable I suppose. At least, it is with the support from all the awesome folks on this forum! Thanks.

2 Likes

@Flawless

Just thought I’d let ya know I am going through with your original solution. The Dummy Page worked great in the isolated test, but once implemented in my main app, it just plain didn’t work. I took some time and made sure everything was set the same as in the test app and that there were no rogue links kicking around that were breaking the data passing, but it still just wouldn’t work.

Didn’t want to keep throwin’ good money after bad, so I switched gears and am using your solution. It’s taken some additional troubleshooting & cleverness (figuring out how to set up headers & footers that were unique to each page to behave nicely, and a few other challenges), but the navigation is working perfectly and it MIGHT even be a bit quicker than it was as 5 separate screens.

So, thank you! I saw in a different post today that you had all kinds of time to help this weekend due to that custom formula bug - that sucks, but lucky me! haha, thanks again.

1 Like