[BUG] Page config "pages" dictionary emptied. Page Configuration lost

I ran into a bug on a project where the page configuration file
(\Inductive Automation\Ignition\data\projects\myProject\com.inductiveautomation.perspective\page-config\config.json)
reverted to no pages configured. I am not sure what happened or when it happened because auditing had not been set up. Since I don’t know exactly when it happened, the wrapper logs are not enough to tell what caused the problem.

Reaching out to Support, the person thought that perhaps the project that it inherits from overwrote the page config file. Since I didn’t have more detail, this was the furthest I got. I have since then configured auditing so that I can see when projects are saved and when resources are modified. This could help if this happens again, but I would like to come up with something to hopefully minimize the time spent fixing this issue if it happens again.

In an attempt to track this bug down, I wrote a file watcher script that looks at the config files in all of my projects and notifies me if a projects number of pages configured suddenly becomes zero. I have tested it in the script console, but I want this to run on Gateway Startup. I don’t think using a Gateway Update Script is the right way to go, as I’m not even sure if it is a save/update that is triggering this bug. I’m not sure how to use a timed script, since I want to continuously compare the file with its pervious version. This leads me to believe the gateway startup script is the best place for this to live.

I am worried about running a script indefinitely on the gateway, and I don’t know how to keep track of the thread and make sure there aren’t multiple of this script running at the same time, or making sure the thread is shut down on a gateway shut down script. The last thing I want is to run a script forever without an easy means of tracking it down and terminating it.

I am very new to Ignition, so I don’t know if this is the best way to solve this problem. Any insight into this problem would be greatly appreciated.

1 Like

Ah yes, I peeked over the support rep’s shoulder on this ticket. It seemed like an interesting one, I hadn’t seen it before.

Without knowing the nature of your script, it is hard to determine what the preferred gateway event to use is. However, if you want to continuously compare the file with it’s previous version, I feel like a timer script is probably the way to go.

Does the script take a long time to run? You can look at the currently running scripts under the Status > Diagnostics > Running Scripts page on your gateway webpage. You really don’t have to worry about the script having multiple instances running at the same time unless the execution time shown in the Running Scripts page is higher than the frequency at which your script is executed.

If its a timer script then I agree I wouldn’t need to worry about the execution time. But my initial draft of my config checker was just a “while True” loop that would watch for the config file to change. I would be wary running too many of these if I didn’t understand exactly when and where it was getting executed. I think I’ve decided to change to a timer script and rewrite the script a bit, then just store the data in tags so that the timer script can be paused if necessary and the information is retained for the most part. Hopefully I manage to catch this bug if it happens again.

Don't do that. That ties up a event thread just like any kind of sleep. (Don't do that either.)

Tying up a thread from a thread pool starves that thread pool. If you absolutely must run a persistent thread, launch it asynchronously. Look for all the topics here that discuss the pitfalls of persistent threads and objects.

Any luck with a resolution? I'm having a similar issue in 8.1.19 with our page configurations getting cleared out randomly. I can't find anything in the audit logs or gateway logs to help.

Nope.

Has there been any update on this bug? We are seeing the same issue on 8.1.22

Hello Lisa,

Do you have a way to consistently replicate the issue? I don't see that any bug tickets have been filed, most likely due to not having a way to replicate it.

It would probably be best to reach out to support to look into this further.

I ended up finding this thread, because the same issue just happened to me.
Page configuration randomly cleared out :frowning:
Other project changes that have been made more recently than the last page configuration have been saved just fine.
I'll contact support in the morning, but I just wanted to note here that this also happened to me.
version 8.1.25

Same issue here.
version 8.1.26

Would be nice to receive updates regarding this. Until then will keep a backup of the Page Configuration at hand.

Doesn't look like this was ever replicated. Are you able to consistently replicate?

Reaching out to support is still the best option to dig into this further.

This has happened to us as well, and we're on 8.1.25.

It doesn't happen by itself, it happens after a project save. The audit log does show that page-config resource and session props were modified. But this is not true, and the engineer certainly did not delete the page configuration, which has a confirmation box on the delete box. We actually had two page configurations, the second was a back-up, and both were cleared. We had to quickly rebuild it.

It can't be replicated.

My suspicion with this issue is that the designer is failing to save the serialized page props, for whatever reason (possibly due to jxbrowser issues). When the resource fails to load, we might be accidentally saving the null/invalid/empty state in the designer over the top of the valid saved state.

There's two avenues to fix:

  • prevent the invalid state from happening in the first place. We're doing this in a few ways; in particular 8.1.28 will have a much newer version of the jxbrowser library that should have better performance and stability.
  • prevent the designer from saving an invalid resource over a valid one. This is harder, because I suspect there's basically no semantic difference between this operation and a legitimate user driven deletion. But, it's worth exploring, and also on our list.

It's tough when we don't know how to replicate it.

Is there an easy way to copy/paste or import/export the page configuration from one project to another? I suppose we can do it in the files?

We are still experiencing this bug in 8.1.30... Any updates?

2 Likes

Still no replication steps have been found.

Our Defect Analyst team is taking a look into this. We're searching for a customer regularly experiencing this issue so we can gather more information. We'd really appreciate it if you or anyone else here experiencing this issue opened a ticket with our support team to help us get this resolved.

Please direct the support rep to this thread so they know to reach out to us.

Seeing the same bug. Page configuration disappearing when opening a designer and then deleting all page configuration after saving from designer, even if page config was never opened or touched. Version 8.1.32

Hi Christopher, could you please file a ticket with our support team? I'd like to work with you to gather more information and get this resolved. Let them know I sent you so we can connect. Thanks!

1 Like