# Random Blank Menu Tree in Ignition Perspective workstation (v8.1.47) – Need Root Cause and Solution

**URL:** <https://forum.inductiveautomation.com/t/random-blank-menu-tree-in-ignition-perspective-workstation-v8-1-47-need-root-cause-and-solution/116396>\
**Category:** Ignition\
**Tags:** ignition81, perspective\
**Created:** [July 14, 2026, 2:01pm UTC](https://forum.inductiveautomation.com/t/random-blank-menu-tree-in-ignition-perspective-workstation-v8-1-47-need-root-cause-and-solution/116396 "2026-07-14T14:01:28Z")\
**Posts on this page:** 8\
**Page:** 1

<div class="post-metadata">

**Author:** ![Yogesh\_Bandabe](https://avatars.discourse-cdn.com/v4/letter/y/9fc348/32.png) [@Yogesh\_Bandabe](https://forum.inductiveautomation.com/u/Yogesh_Bandabe)\
**Post date:** [July 14, 2026, 2:01pm UTC](https://forum.inductiveautomation.com/t/random-blank-menu-tree-in-ignition-perspective-workstation-v8-1-47-need-root-cause-and-solution/116396/1 "2026-07-14T14:01:28Z")

</div>

Hello Everyone,

We are facing an intermittent issue in our **Ignition Perspective** application where the **Menu Tree** occasionally becomes completely blank. The issue occurs randomly and is **not consistently reproducible**.

### Environment

- **Ignition Gateway Version:** 8.1.47
- **Perspective Workstation Version:** 8.1.43
- **Also tested with Perspective Workstation 8.1.47** , but the same issue is observed.

### Issue Description

- The Menu Tree loads and works normally most of the time.
- However, at random intervals, the **entire Menu Tree becomes blank** , and no menu items are displayed.
- The issue is intermittent and does not follow any specific sequence or user action.
- Restarting or refreshing the session usually restores the Menu Tree, but the issue reappears randomly.

---

<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:** [July 14, 2026, 2:05pm UTC](https://forum.inductiveautomation.com/t/random-blank-menu-tree-in-ignition-perspective-workstation-v8-1-47-need-root-cause-and-solution/116396/2 "2026-07-14T14:05:42Z")

</div>

Is the menu tree dynamically generated? If so, add `try` - `except` clauses to the scripts, and log errors. (Use [double except clauses](https://forum.inductiveautomation.com/t/database-connection-faulted-errors-list/115944/3) to catch both java and jython exceptions.)

---

<div class="post-metadata">

**Author:** ![Yogesh\_Bandabe](https://avatars.discourse-cdn.com/v4/letter/y/9fc348/32.png) [@Yogesh\_Bandabe](https://forum.inductiveautomation.com/u/Yogesh_Bandabe)\
**Post date:** [July 14, 2026, 2:09pm UTC](https://forum.inductiveautomation.com/t/random-blank-menu-tree-in-ignition-perspective-workstation-v8-1-47-need-root-cause-and-solution/116396/3 "2026-07-14T14:09:10Z")

</div>

menu is dynamically generated and we used try- except cluse

---

<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:** [July 14, 2026, 2:10pm UTC](https://forum.inductiveautomation.com/t/random-blank-menu-tree-in-ignition-perspective-workstation-v8-1-47-need-root-cause-and-solution/116396/4 "2026-07-14T14:10:48Z")

</div>

Show your binding and your code.

---

<div class="post-metadata">

**Author:** ![Yogesh\_Bandabe](https://avatars.discourse-cdn.com/v4/letter/y/9fc348/32.png) [@Yogesh\_Bandabe](https://forum.inductiveautomation.com/u/Yogesh_Bandabe)\
**Post date:** [July 14, 2026, 2:16pm UTC](https://forum.inductiveautomation.com/t/random-blank-menu-tree-in-ignition-perspective-workstation-v8-1-47-need-root-cause-and-solution/116396/5 "2026-07-14T14:16:05Z")

</div>

[MenuTree\_2026-07-14\_1944.zip](https://forum.inductiveautomation.com/uploads/short-url/w8ZreRcIgmwSrLuYbR1qYodbnzO.zip) (40.9 KB)

i have attached the menu tree export zip file

---

<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:** [July 14, 2026, 2:39pm UTC](https://forum.inductiveautomation.com/t/random-blank-menu-tree-in-ignition-perspective-workstation-v8-1-47-need-root-cause-and-solution/116396/6 "2026-07-14T14:39:48Z")

</div>

You have a view startup event that is throwing an exception, but that is lost because the script is missing from your export. The event modifies the menu item list.

But anyways, you should not be writing your own logging framework. Use native Ignition loggers and hand tracebacks to them.

---

<div class="post-metadata">

**Author:** ![pramod\_thorat1](https://avatars.discourse-cdn.com/v4/letter/p/b38774/32.png) [@pramod\_thorat1](https://forum.inductiveautomation.com/u/pramod_thorat1)\
**Post date:** [July 14, 2026, 2:43pm UTC](https://forum.inductiveautomation.com/t/random-blank-menu-tree-in-ignition-perspective-workstation-v8-1-47-need-root-cause-and-solution/116396/7 "2026-07-14T14:43:59Z")

</div>

ok than you i will do that, but is there any issue with version 8.1.43 or 8.1.47

please check startup script as below:

def runAction(self):  
try:  
for i in self.getChild("root").getChild("MenuTree").props.items:  
i.style.backgroundColor = 'transparent'  
i.style.color = '#ffffff'  
i.label.icon.color = '#ffffff'

```
    system.perspective.navigate('/')

```

# if self.session.props.auth.user.userName is None:

# system.tag.writeBlocking(['[default]SCADA\_Common/UserName'], 'no user')

# else:

# system.tag.writeBlocking(['[default]SCADA\_Common/UserName'], self.session.props.auth.user.userName)

```
    system.perspective.sendMessage("msg_RefreshMenuTree", payload={}, scope='view')
    # Insert User Action Log
    \_0000_Logs.AuditLogs.AuditLogs.InsertAuditLog( 
                    self
                    , eventType = 'System'
                    , areaOfTag = "Startup"
                    , tagAction = 'Start SCADA !' 
                    , oldValue = \_0000_Logs.AuditLogs.EventScada.ScadaEvents("oldValue")    
                    , newValue = \_0000_Logs.AuditLogs.EventScada.ScadaEvents("newValue")    
                    )
                
except:
    \_0000_Logs.ErrorLogs.ErrorLogs.InsertErrorLog( 
                    sys.exc_info(),
                    logType = 1, 
                    viewPath = 'Header_Menu_Tree/MenuTree',
                    logEvent = "onStartup",
                    logObjectType = "EventScript"
                    )

```

---

<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:** [July 14, 2026, 3:18pm UTC](https://forum.inductiveautomation.com/t/random-blank-menu-tree-in-ignition-perspective-workstation-v8-1-47-need-root-cause-and-solution/116396/8 "2026-07-14T15:18:02Z")

</div>

I looked at the script and there's nothing I can debug given your custom logger. (You should also fix your posted script's formatting--Please see [Wiki - how to post code on this forum](https://forum.inductiveautomation.com/t/wiki-how-to-post-code-on-this-forum/77831)).
