# Error when dynamic popup loads

**URL:** <https://forum.inductiveautomation.com/t/error-when-dynamic-popup-loads/110405>\
**Category:** Ignition\
**Tags:** perspective\
**Created:** [September 5, 2025, 11:43am UTC](https://forum.inductiveautomation.com/t/error-when-dynamic-popup-loads/110405 "2025-09-05T11:43:50Z")\
**Posts on this page:** 17\
**Page:** 1

<div class="post-metadata">

**Author:** ![Thanya\_Gangesh](https://avatars.discourse-cdn.com/v4/letter/t/58956e/32.png) [@Thanya\_Gangesh](https://forum.inductiveautomation.com/u/Thanya_Gangesh)\
**Post date:** [September 5, 2025, 11:43am UTC](https://forum.inductiveautomation.com/t/error-when-dynamic-popup-loads/110405/1 "2025-09-05T11:43:50Z")

</div>

Hi, I have created a script in the project library for dynamic popup to which I send parameters such that my popup view is rendered according to the parameters on clicking a button. But the problem is, there seems to be glitch every time the popup is supposed to appear, it seems the glitch lasts only for a second but it is the skeleton view of the popup without the editing parameters. Does anyone know how this can be solved?

---

<div class="post-metadata">

**Author:** ![Transistor](https://sea1.discourse-cdn.com/inductiveautomation/user_avatar/forum.inductiveautomation.com/transistor/32/3380_2.png) [@Transistor](https://forum.inductiveautomation.com/u/Transistor)\
**Post date:** [September 5, 2025, 11:45am UTC](https://forum.inductiveautomation.com/t/error-when-dynamic-popup-loads/110405/2 "2025-09-05T11:45:31Z")

</div>

Please edit your question and add the `perspective` or `vision` tag from the dropdown.

Make a recording of the glitch and add it to your post.

---

<div class="post-metadata">

**Author:** ![Thanya\_Gangesh](https://avatars.discourse-cdn.com/v4/letter/t/58956e/32.png) [@Thanya\_Gangesh](https://forum.inductiveautomation.com/u/Thanya_Gangesh)\
**Post date:** [September 5, 2025, 11:47am UTC](https://forum.inductiveautomation.com/t/error-when-dynamic-popup-loads/110405/3 "2025-09-05T11:47:29Z")

</div>

Okay

---

<div class="post-metadata">

**Author:** ![Thanya\_Gangesh](https://avatars.discourse-cdn.com/v4/letter/t/58956e/32.png) [@Thanya\_Gangesh](https://forum.inductiveautomation.com/u/Thanya_Gangesh)\
**Post date:** [September 5, 2025, 11:56am UTC](https://forum.inductiveautomation.com/t/error-when-dynamic-popup-loads/110405/4 "2025-09-05T11:56:36Z")

</div>



---

<div class="post-metadata">

**Author:** ![Transistor](https://sea1.discourse-cdn.com/inductiveautomation/user_avatar/forum.inductiveautomation.com/transistor/32/3380_2.png) [@Transistor](https://forum.inductiveautomation.com/u/Transistor)\
**Post date:** [September 5, 2025, 11:59am UTC](https://forum.inductiveautomation.com/t/error-when-dynamic-popup-loads/110405/5 "2025-09-05T11:59:03Z")

</div>

Show your Save button code. Please see [Wiki - how to post code on this forum](https://forum.inductiveautomation.com/t/wiki-how-to-post-code-on-this-forum/77831).

---

<div class="post-metadata">

**Author:** ![Thanya\_Gangesh](https://avatars.discourse-cdn.com/v4/letter/t/58956e/32.png) [@Thanya\_Gangesh](https://forum.inductiveautomation.com/u/Thanya_Gangesh)\
**Post date:** [September 5, 2025, 12:02pm UTC](https://forum.inductiveautomation.com/t/error-when-dynamic-popup-loads/110405/6 "2025-09-05T12:02:11Z")

</div>

```python
	from Popup.DynamicPopup import DynamicPopup
	popup = DynamicPopup(popup_id = 'GenricPopup123')	
	Application = self.getSibling("ddApplications").props.value
	parameters = {
		"messageHead": 'Validation Error!',
		"message": 'Application is required.',
		"canShowDeleteBtn": 0,
		"canShowConfirmBtn": 1,
		"canShowCancelBtn": 0,
		"confirmBtnTxt": "OK",
		"deleteBtnTxt": "OK",
		"cancelBtnTxt": "Cancel",
		"EventName": "ValidationApplication",
		"messageHeadColor": '#ff5d5d'
	}

	if Application == "value" or Application == "All":
		popup.openPopup(parameters)

```

---

<div class="post-metadata">

**Author:** ![Transistor](https://sea1.discourse-cdn.com/inductiveautomation/user_avatar/forum.inductiveautomation.com/transistor/32/3380_2.png) [@Transistor](https://forum.inductiveautomation.com/u/Transistor)\
**Post date:** [September 5, 2025, 12:06pm UTC](https://forum.inductiveautomation.com/t/error-when-dynamic-popup-loads/110405/7 "2025-09-05T12:06:33Z")

</div>

Q1. Why are you using a library instead of Ignition's native [system.perspective.openPopup | Ignition User Manual](https://docs.inductiveautomation.com/docs/8.1/appendix/scripting-functions/system-perspective/system-perspective-openPopup)?  
Q2. How did you expect anyone to answer your first post without the information that you were using an external library?

---

<div class="post-metadata">

**Author:** ![Thanya\_Gangesh](https://avatars.discourse-cdn.com/v4/letter/t/58956e/32.png) [@Thanya\_Gangesh](https://forum.inductiveautomation.com/u/Thanya_Gangesh)\
**Post date:** [September 5, 2025, 12:11pm UTC](https://forum.inductiveautomation.com/t/error-when-dynamic-popup-loads/110405/8 "2025-09-05T12:11:35Z")

</div>

1. I’m using library so that I can use the same view to display different messages in my application according to my need.
2. I did mention in my first post in the first line that I’m using an external library - Hi, I have created a script in the project library for dynamic popup

---

<div class="post-metadata">

**Author:** ![pturmel](https://sea1.discourse-cdn.com/inductiveautomation/user_avatar/forum.inductiveautomation.com/pturmel/32/3295_2.png) [@pturmel](https://forum.inductiveautomation.com/u/pturmel)\
**Post date:** [September 5, 2025, 12:18pm UTC](https://forum.inductiveautomation.com/t/error-when-dynamic-popup-loads/110405/9 "2025-09-05T12:18:33Z")

</div>

1. Laudable, but Ignition has other tools to do this natively.
2. I don't understand why you would think we could help you with a dynamic popup script that you aren't showing us. (The error appears to be from React on the browser.)

---

<div class="post-metadata">

**Author:** ![Thanya\_Gangesh](https://avatars.discourse-cdn.com/v4/letter/t/58956e/32.png) [@Thanya\_Gangesh](https://forum.inductiveautomation.com/u/Thanya_Gangesh)\
**Post date:** [September 5, 2025, 12:34pm UTC](https://forum.inductiveautomation.com/t/error-when-dynamic-popup-loads/110405/10 "2025-09-05T12:34:35Z")

</div>

I’ll look into the react issue and if possible into other tools. Thank you

---

<div class="post-metadata">

**Author:** ![Ryan\_Deardorff](https://sea1.discourse-cdn.com/inductiveautomation/user_avatar/forum.inductiveautomation.com/ryan_deardorff/32/63815_2.png) [@Ryan\_Deardorff](https://forum.inductiveautomation.com/u/Ryan_Deardorff)\
**Post date:** [September 5, 2025, 2:15pm UTC](https://forum.inductiveautomation.com/t/error-when-dynamic-popup-loads/110405/11 "2025-09-05T14:15:44Z")

</div>

> [@Thanya\_Gangesh](#):
>
> it is the skeleton view of the popup without the editing parameters

I assume you mean this:

 ![image](https://us1.discourse-cdn.com/inductiveautomation/original/3X/2/c/2c6a6c721e20023b57e3fe270d307fdaabcd2301.png)

You should familiarize yourself with the `persistent` property of bindings. I’m guessing the button text is bound to a parameter, but the default text of “Button” will show for a split second before the binding is resolved from an initial null value. You can provide an alternate default value for an initial null value by using the `coalesce` function in a binding expression:

```python
coalesce({view.params.buttonText}, '')  

```

That should make the button appear blank before the parameter text shows up, assuming the text property is not set to `persistent` (the default for bound values).

Alternatively, you could check the `persistent` property of the text, in which case whatever value is present when you save the view is what will initially appear.

---

<div class="post-metadata">

**Author:** ![Transistor](https://sea1.discourse-cdn.com/inductiveautomation/user_avatar/forum.inductiveautomation.com/transistor/32/3380_2.png) [@Transistor](https://forum.inductiveautomation.com/u/Transistor)\
**Post date:** [September 5, 2025, 2:59pm UTC](https://forum.inductiveautomation.com/t/error-when-dynamic-popup-loads/110405/12 "2025-09-05T14:59:14Z")

</div>

> [@Ryan\_Deardorff](#):
>
> You should familiarize yourself with the `persistent` property of bindings.

The OP seems to be using an external popup library. It's unlikely that it can handle Ignition expressions.

---

<div class="post-metadata">

**Author:** ![Ryan\_Deardorff](https://sea1.discourse-cdn.com/inductiveautomation/user_avatar/forum.inductiveautomation.com/ryan_deardorff/32/63815_2.png) [@Ryan\_Deardorff](https://forum.inductiveautomation.com/u/Ryan_Deardorff)\
**Post date:** [September 5, 2025, 3:03pm UTC](https://forum.inductiveautomation.com/t/error-when-dynamic-popup-loads/110405/13 "2025-09-05T15:03:04Z")

</div>

He says he created it, though, so I’m assuming it’s just a project library script… 🤷‍♂️

---

<div class="post-metadata">

**Author:** ![pturmel](https://sea1.discourse-cdn.com/inductiveautomation/user_avatar/forum.inductiveautomation.com/pturmel/32/3295_2.png) [@pturmel](https://forum.inductiveautomation.com/u/pturmel)\
**Post date:** [September 5, 2025, 3:14pm UTC](https://forum.inductiveautomation.com/t/error-when-dynamic-popup-loads/110405/14 "2025-09-05T15:14:53Z")

</div>

Until the OP shares all relevant scripts, we simply cannot know what is going on.

---

<div class="post-metadata">

**Author:** ![pascal.fragnoud](https://sea1.discourse-cdn.com/inductiveautomation/user_avatar/forum.inductiveautomation.com/pascal.fragnoud/32/24728_2.png) [@pascal.fragnoud](https://forum.inductiveautomation.com/u/pascal.fragnoud)\
**Post date:** [September 5, 2025, 7:56pm UTC](https://forum.inductiveautomation.com/t/error-when-dynamic-popup-loads/110405/15 "2025-09-05T19:56:45Z")

</div>

My money’s on a wrapper around the built in popup function.  
I also do that sometimes, for generic popups like info messages or confirmations.  
I also thought about going deeper into it but it hardly seems worth it.

---

<div class="post-metadata">

**Author:** ![Ryan\_Deardorff](https://sea1.discourse-cdn.com/inductiveautomation/user_avatar/forum.inductiveautomation.com/ryan_deardorff/32/63815_2.png) [@Ryan\_Deardorff](https://forum.inductiveautomation.com/u/Ryan_Deardorff)\
**Post date:** [September 5, 2025, 8:05pm UTC](https://forum.inductiveautomation.com/t/error-when-dynamic-popup-loads/110405/16 "2025-09-05T20:05:01Z")

</div>

> [@pascal.fragnoud](#):
>
> I also do that sometimes, for generic popups like info messages or confirmations.

Same here. Though since they are for convenience, they don’t require an imported class instance. Their use looks as simple as:

```python
UI.successPopup('You done good!')

```

They _can_ take more parameters, but they’re mostly optional, with default values (something I love about Python).

---

<div class="post-metadata">

**Author:** ![pascal.fragnoud](https://sea1.discourse-cdn.com/inductiveautomation/user_avatar/forum.inductiveautomation.com/pascal.fragnoud/32/24728_2.png) [@pascal.fragnoud](https://forum.inductiveautomation.com/u/pascal.fragnoud)\
**Post date:** [September 6, 2025, 5:36am UTC](https://forum.inductiveautomation.com/t/error-when-dynamic-popup-loads/110405/17 "2025-09-06T05:36:17Z")

</div>

It can be a very simple class, but then you’ll ask “why use a class then?”

OOP has been ingrained in the mind of a lot of devs. I’ve heard some say things like “If it’s not in a class, it’s not production grade”.
