# \[BUG\] Vision: How do I browse client tags in script? (unable to browse client tags)

**URL:** <https://forum.inductiveautomation.com/t/bug-vision-how-do-i-browse-client-tags-in-script-unable-to-browse-client-tags/26293>\
**Category:** Ignition\
**Created:** [July 4, 2019, 11:05am UTC](https://forum.inductiveautomation.com/t/bug-vision-how-do-i-browse-client-tags-in-script-unable-to-browse-client-tags/26293 "2019-07-04T11:05:57Z")\
**Posts on this page:** 14\
**Page:** 1

<div class="post-metadata">

**Author:** ![nminchin](https://sea1.discourse-cdn.com/inductiveautomation/user_avatar/forum.inductiveautomation.com/nminchin/32/6911_2.png) [@nminchin](https://forum.inductiveautomation.com/u/nminchin)\
**Post date:** [July 4, 2019, 11:05am UTC](https://forum.inductiveautomation.com/t/bug-vision-how-do-i-browse-client-tags-in-script-unable-to-browse-client-tags/26293/1 "2019-07-04T11:05:57Z")

</div>

Edit: using version 7.9.10 and 7.9.12

I’ve tried using `system.tag.browseTags(...)` to get a list of client tags within a subfolder, but it doesn’t like the parent path provider being [client].

How can I do this using this function, or otherwise?

Cheers!

---

<div class="post-metadata">

**Author:** ![cmallonee](https://sea1.discourse-cdn.com/inductiveautomation/user_avatar/forum.inductiveautomation.com/cmallonee/32/6416_2.png) [@cmallonee](https://forum.inductiveautomation.com/u/cmallonee)\
**Post date:** [July 5, 2019, 9:53pm UTC](https://forum.inductiveautomation.com/t/bug-vision-how-do-i-browse-client-tags-in-script-unable-to-browse-client-tags/26293/2 "2019-07-05T21:53:42Z")

</div>

`system.tag.browse('[client]Something/SomeClientTag')`

The `browseTags()` method was deprecated as of 8.0.

---

<div class="post-metadata">

**Author:** ![nminchin](https://sea1.discourse-cdn.com/inductiveautomation/user_avatar/forum.inductiveautomation.com/nminchin/32/6911_2.png) [@nminchin](https://forum.inductiveautomation.com/u/nminchin)\
**Post date:** [July 5, 2019, 9:55pm UTC](https://forum.inductiveautomation.com/t/bug-vision-how-do-i-browse-client-tags-in-script-unable-to-browse-client-tags/26293/3 "2019-07-05T21:55:17Z")

</div>

I’m using 7.9.10 at the moment and browsing the client tags doesn’t seem to work.

Edit: tried in 7.9.12 as well

---

<div class="post-metadata">

**Author:** ![nminchin](https://sea1.discourse-cdn.com/inductiveautomation/user_avatar/forum.inductiveautomation.com/nminchin/32/6911_2.png) [@nminchin](https://forum.inductiveautomation.com/u/nminchin)\
**Post date:** [July 9, 2019, 12:27pm UTC](https://forum.inductiveautomation.com/t/bug-vision-how-do-i-browse-client-tags-in-script-unable-to-browse-client-tags/26293/4 "2019-07-09T12:27:50Z")

</div>

In 7.9.10 I’m using this:

```auto
tags = system.tag.browseTags(tagPath = '[client]Styles/Colours/Device/*', recursive=1)
for tag in tags: print tag

```

and the print returns nothing.

![image](https://us1.discourse-cdn.com/inductiveautomation/original/2X/7/7792d3a99b1ab7709f340edd85ee0da99edf7ef8.png)

Specifying a `parentPath = '[client]Styles'` instead yields this error:

```auto
21:59:32.652 [AWT-EventQueue-0] ERROR com.inductiveautomation.factorypmi.application.binding.action.ActionAdapter - <HTML>Error executing script for event:&nbsp;<code><b>actionPerformed</b></code><BR>on component:&nbsp;<code><b>Button</b></code>.
com.inductiveautomation.ignition.common.script.JythonExecException: Traceback (most recent call last):
  File "<event:actionPerformed>", line 1, in <module>
	at com.inductiveautomation.ignition.client.gateway_interface.GatewayInterface.newGatewayException(GatewayInterface.java:341)

	at com.inductiveautomation.ignition.client.gateway_interface.GatewayInterface.sendMessage(GatewayInterface.java:315)

	at com.inductiveautomation.ignition.client.gateway_interface.GatewayInterface.sendMessage(GatewayInterface.java:268)

	at com.inductiveautomation.ignition.client.gateway_interface.GatewayInterface.invoke(GatewayInterface.java:894)

	at com.inductiveautomation.factorypmi.application.script.builtin.ialabs.IALabsTagFunctions.browseTagsImpl(IALabsTagFunctions.java:30)

	at com.inductiveautomation.ignition.common.script.builtin.ialabs.AbstractIALabsTagFunctions.browseTags(AbstractIALabsTagFunctions.java:31)

	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)

	at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)

	at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)

	at java.lang.reflect.Method.invoke(Unknown Source)

com.inductiveautomation.ignition.client.gateway_interface.GatewayException: com.inductiveautomation.ignition.client.gateway_interface.GatewayException: Unable to list tags, provider "client" not found

	at org.python.core.Py.JavaError(Py.java:495)
	at org.python.core.Py.JavaError(Py.java:488)
	at org.python.core.PyReflectedFunction. __call__ (PyReflectedFunction.java:188)
	at com.inductiveautomation.ignition.common.script.ScriptManager$ReflectedInstanceFunction. __call__ (ScriptManager.java:431)
	at org.python.core.PyObject. __call__ (PyObject.java:320)
	at org.python.pycode._pyx57.f$0(<event:actionPerformed>:2)
	at org.python.pycode._pyx57.call_function(<event:actionPerformed>)
	at org.python.core.PyTableCode.call(PyTableCode.java:165)
	at org.python.core.PyCode.call(PyCode.java:18)
	at org.python.core.Py.runCode(Py.java:1275)
	at com.inductiveautomation.ignition.common.script.ScriptManager.runCode(ScriptManager.java:636)
	at com.inductiveautomation.factorypmi.application.binding.action.ActionAdapter.runActions(ActionAdapter.java:180)
	at com.inductiveautomation.factorypmi.application.binding.action.ActionAdapter.invoke(ActionAdapter.java:271)
	at com.inductiveautomation.factorypmi.application.binding.action.RelayInvocationHandler.invoke(RelayInvocationHandler.java:57)
	at com.sun.proxy.$Proxy21.actionPerformed(Unknown Source)
	at javax.swing.AbstractButton.fireActionPerformed(Unknown Source)
	at javax.swing.AbstractButton$Handler.actionPerformed(Unknown Source)
	at javax.swing.DefaultButtonModel.fireActionPerformed(Unknown Source)
	at javax.swing.DefaultButtonModel.setPressed(Unknown Source)
	at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(Unknown Source)
	at java.awt.Component.processMouseEvent(Unknown Source)
	at javax.swing.JComponent.processMouseEvent(Unknown Source)
	at java.awt.Component.processEvent(Unknown Source)
	at java.awt.Container.processEvent(Unknown Source)
	at java.awt.Component.dispatchEventImpl(Unknown Source)
	at java.awt.Container.dispatchEventImpl(Unknown Source)
	at java.awt.Component.dispatchEvent(Unknown Source)
	at java.awt.LightweightDispatcher.retargetMouseEvent(Unknown Source)
	at java.awt.LightweightDispatcher.processMouseEvent(Unknown Source)
	at java.awt.LightweightDispatcher.dispatchEvent(Unknown Source)
	at java.awt.Container.dispatchEventImpl(Unknown Source)
	at java.awt.Window.dispatchEventImpl(Unknown Source)
	at java.awt.Component.dispatchEvent(Unknown Source)
	at java.awt.EventQueue.dispatchEventImpl(Unknown Source)
	at java.awt.EventQueue.access$500(Unknown Source)
	at java.awt.EventQueue$3.run(Unknown Source)
	at java.awt.EventQueue$3.run(Unknown Source)
	at java.security.AccessController.doPrivileged(Native Method)
	at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(Unknown Source)
	at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(Unknown Source)
	at java.awt.EventQueue$4.run(Unknown Source)
	at java.awt.EventQueue$4.run(Unknown Source)
	at java.security.AccessController.doPrivileged(Native Method)
	at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(Unknown Source)
	at java.awt.EventQueue.dispatchEvent(Unknown Source)
	at java.awt.EventDispatchThread.pumpOneEventForFilters(Unknown Source)
	at java.awt.EventDispatchThread.pumpEventsForFilter(Unknown Source)
	at java.awt.EventDispatchThread.pumpEventsForHierarchy(Unknown Source)
	at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
	at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
	at java.awt.EventDispatchThread.run(Unknown Source)
Caused by: org.python.core.PyException: Traceback (most recent call last):
  File "<event:actionPerformed>", line 1, in <module>
	at com.inductiveautomation.ignition.client.gateway_interface.GatewayInterface.newGatewayException(GatewayInterface.java:341)

	at com.inductiveautomation.ignition.client.gateway_interface.GatewayInterface.sendMessage(GatewayInterface.java:315)

	at com.inductiveautomation.ignition.client.gateway_interface.GatewayInterface.sendMessage(GatewayInterface.java:268)

	at com.inductiveautomation.ignition.client.gateway_interface.GatewayInterface.invoke(GatewayInterface.java:894)

	at com.inductiveautomation.factorypmi.application.script.builtin.ialabs.IALabsTagFunctions.browseTagsImpl(IALabsTagFunctions.java:30)

	at com.inductiveautomation.ignition.common.script.builtin.ialabs.AbstractIALabsTagFunctions.browseTags(AbstractIALabsTagFunctions.java:31)

	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)

	at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)

	at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)

	at java.lang.reflect.Method.invoke(Unknown Source)

com.inductiveautomation.ignition.client.gateway_interface.GatewayException: com.inductiveautomation.ignition.client.gateway_interface.GatewayException: Unable to list tags, provider "client" not found

	... 51 common frames omitted
Caused by: com.inductiveautomation.ignition.client.gateway_interface.GatewayException: Unable to list tags, provider "client" not found
	at com.inductiveautomation.ignition.client.gateway_interface.GatewayInterface.newGatewayException(GatewayInterface.java:341)
	at com.inductiveautomation.ignition.client.gateway_interface.GatewayInterface.sendMessage(GatewayInterface.java:315)
	at com.inductiveautomation.ignition.client.gateway_interface.GatewayInterface.sendMessage(GatewayInterface.java:268)
	at com.inductiveautomation.ignition.client.gateway_interface.GatewayInterface.invoke(GatewayInterface.java:894)
	at com.inductiveautomation.factorypmi.application.script.builtin.ialabs.IALabsTagFunctions.browseTagsImpl(IALabsTagFunctions.java:30)
	at com.inductiveautomation.ignition.common.script.builtin.ialabs.AbstractIALabsTagFunctions.browseTags(AbstractIALabsTagFunctions.java:31)
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
	at java.lang.reflect.Method.invoke(Unknown Source)
	at org.python.core.PyReflectedFunction. __call__ (PyReflectedFunction.java:186)
	... 48 common frames omitted
Caused by: com.inductiveautomation.ignition.client.gateway_interface.GatewayResponse$GatewayThrowable: Unable to list tags, provider "client" not found
	at com.inductiveautomation.ignition.gateway.sqltags.SQLTagsManagerImpl.browse(SQLTagsManagerImpl.java:521)
	at com.inductiveautomation.ignition.gateway.script.ialabs.IALabsTagFunctions._browseTags(IALabsTagFunctions.java:158)
	at com.inductiveautomation.ignition.gateway.script.ialabs.IALabsTagFunctions.browseTagsImpl(IALabsTagFunctions.java:142)
	at com.inductiveautomation.ignition.common.script.builtin.ialabs.AbstractIALabsTagFunctions.browseTags(AbstractIALabsTagFunctions.java:31)
	at com.inductiveautomation.ignition.gateway.servlets.gateway.functions.IALabs.browseTags(IALabs.java:139)
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at sun.reflect.NativeMethodAccessorImpl.invoke(null)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(null)
	at java.lang.reflect.Method.invoke(null)
	at com.inductiveautomation.ignition.gateway.servlets.gateway.AbstractGatewayFunction.invoke(AbstractGatewayFunction.java:208)
	at com.inductiveautomation.ignition.gateway.servlets.Gateway.doPost(Gateway.java:404)
	at javax.servlet.http.HttpServlet.service(HttpServlet.java:707)
	at javax.servlet.http.HttpServlet.service(HttpServlet.java:790)
	at com.inductiveautomation.ignition.gateway.bootstrap.MapServlet.service(MapServlet.java:85)
	at org.eclipse.jetty.servlet.ServletHolder.handle(ServletHolder.java:837)
	at org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:583)
	at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:143)
	at org.eclipse.jetty.security.SecurityHandler.handle(SecurityHandler.java:548)
	at org.eclipse.jetty.server.session.SessionHandler.doHandle(SessionHandler.java:226)
	at org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:1160)
	at org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:511)
	at org.eclipse.jetty.server.session.SessionHandler.doScope(SessionHandler.java:185)
	at org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:1092)
	at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:141)
	at org.eclipse.jetty.server.handler.HandlerList.handle(HandlerList.java:52)
	at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:134)
	at org.eclipse.jetty.server.Server.handle(Server.java:518)
	at org.eclipse.jetty.server.HttpChannel.handle(HttpChannel.java:308)
	at org.eclipse.jetty.server.HttpConnection.onFillable(HttpConnection.java:244)
	at org.eclipse.jetty.io.AbstractConnection$ReadCallback.succeeded(AbstractConnection.java:273)
	at org.eclipse.jetty.io.FillInterest.fillable(FillInterest.java:95)
	at org.eclipse.jetty.io.SelectChannelEndPoint$2.run(SelectChannelEndPoint.java:93)
	at org.eclipse.jetty.util.thread.strategy.ExecuteProduceConsume.produceAndRun(ExecuteProduceConsume.java:246)
	at org.eclipse.jetty.util.thread.strategy.ExecuteProduceConsume.run(ExecuteProduceConsume.java:156)
	at org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:654)
	at org.eclipse.jetty.util.thread.QueuedThreadPool$3.run(QueuedThreadPool.java:572)
	at java.lang.Thread.run(null)

```

---

<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 9, 2019, 12:34pm UTC](https://forum.inductiveautomation.com/t/bug-vision-how-do-i-browse-client-tags-in-script-unable-to-browse-client-tags/26293/5 "2019-07-09T12:34:55Z")

</div>

Try a capital C in [Client].

---

<div class="post-metadata">

**Author:** ![nminchin](https://sea1.discourse-cdn.com/inductiveautomation/user_avatar/forum.inductiveautomation.com/nminchin/32/6911_2.png) [@nminchin](https://forum.inductiveautomation.com/u/nminchin)\
**Post date:** [July 9, 2019, 12:35pm UTC](https://forum.inductiveautomation.com/t/bug-vision-how-do-i-browse-client-tags-in-script-unable-to-browse-client-tags/26293/6 "2019-07-09T12:35:17Z")

</div>

Yep tried that as well, no luck ☹

---

<div class="post-metadata">

**Author:** ![zxcslo](https://sea1.discourse-cdn.com/inductiveautomation/user_avatar/forum.inductiveautomation.com/zxcslo/32/61610_2.png) [@zxcslo](https://forum.inductiveautomation.com/u/zxcslo)\
**Post date:** [July 9, 2019, 12:53pm UTC](https://forum.inductiveautomation.com/t/bug-vision-how-do-i-browse-client-tags-in-script-unable-to-browse-client-tags/26293/7 "2019-07-09T12:53:51Z")

</div>

Device… Devices…

---

<div class="post-metadata">

**Author:** ![nminchin](https://sea1.discourse-cdn.com/inductiveautomation/user_avatar/forum.inductiveautomation.com/nminchin/32/6911_2.png) [@nminchin](https://forum.inductiveautomation.com/u/nminchin)\
**Post date:** [July 9, 2019, 12:57pm UTC](https://forum.inductiveautomation.com/t/bug-vision-how-do-i-browse-client-tags-in-script-unable-to-browse-client-tags/26293/8 "2019-07-09T12:57:22Z")

</div>

I should have also mentioned that I tried just `[Client]Styles` as well with no results, but good catch

---

<div class="post-metadata">

**Author:** ![zxcslo](https://sea1.discourse-cdn.com/inductiveautomation/user_avatar/forum.inductiveautomation.com/zxcslo/32/61610_2.png) [@zxcslo](https://forum.inductiveautomation.com/u/zxcslo)\
**Post date:** [July 9, 2019, 1:45pm UTC](https://forum.inductiveautomation.com/t/bug-vision-how-do-i-browse-client-tags-in-script-unable-to-browse-client-tags/26293/9 "2019-07-09T13:45:07Z")

</div>

tags = system.tag.browseTags(tagPath = ‘Client/Styles/Colours/Devices/\*’, recursive=1)  
for tag in tags: print tag

---

<div class="post-metadata">

**Author:** ![nminchin](https://sea1.discourse-cdn.com/inductiveautomation/user_avatar/forum.inductiveautomation.com/nminchin/32/6911_2.png) [@nminchin](https://forum.inductiveautomation.com/u/nminchin)\
**Post date:** [July 9, 2019, 9:44pm UTC](https://forum.inductiveautomation.com/t/bug-vision-how-do-i-browse-client-tags-in-script-unable-to-browse-client-tags/26293/10 "2019-07-09T21:44:12Z")

</div>

Does something like this work for you? I’ve tried all sorts of different combinations but can’t get it working…

---

<div class="post-metadata">

**Author:** ![zxcslo](https://sea1.discourse-cdn.com/inductiveautomation/user_avatar/forum.inductiveautomation.com/zxcslo/32/61610_2.png) [@zxcslo](https://forum.inductiveautomation.com/u/zxcslo)\
**Post date:** [July 10, 2019, 5:38am UTC](https://forum.inductiveautomation.com/t/bug-vision-how-do-i-browse-client-tags-in-script-unable-to-browse-client-tags/26293/11 "2019-07-10T05:38:19Z")

</div>

No, it doesn’t. I was replying to you from my phone.  
When I came home, I tried and it doesn’t work.  
It seems that it works only for regular OPC tags (which they have Tag provider), not for System and Client tags.

---

<div class="post-metadata">

**Author:** ![MMaynard](https://sea1.discourse-cdn.com/inductiveautomation/user_avatar/forum.inductiveautomation.com/mmaynard/32/3366_2.png) [@MMaynard](https://forum.inductiveautomation.com/u/MMaynard)\
**Post date:** [July 10, 2019, 11:56am UTC](https://forum.inductiveautomation.com/t/bug-vision-how-do-i-browse-client-tags-in-script-unable-to-browse-client-tags/26293/12 "2019-07-10T11:56:21Z")

</div>

Are you testing this in Runtime?  
The scope doesn't exist in Designer.

> Client tags, as the name implies, are only available for use in the Clients and have a Client scope. This means that their values are isolated to a Client runtime. Even though they are created in the Designer, each Client creates their own instances.

---

<div class="post-metadata">

**Author:** ![zxcslo](https://sea1.discourse-cdn.com/inductiveautomation/user_avatar/forum.inductiveautomation.com/zxcslo/32/61610_2.png) [@zxcslo](https://forum.inductiveautomation.com/u/zxcslo)\
**Post date:** [July 10, 2019, 12:36pm UTC](https://forum.inductiveautomation.com/t/bug-vision-how-do-i-browse-client-tags-in-script-unable-to-browse-client-tags/26293/13 "2019-07-10T12:36:16Z")

</div>

😱 of course we are testing this in … Designer…  
EDIT: I just remember… designer has its own client tags…😕

---

<div class="post-metadata">

**Author:** ![nminchin](https://sea1.discourse-cdn.com/inductiveautomation/user_avatar/forum.inductiveautomation.com/nminchin/32/6911_2.png) [@nminchin](https://forum.inductiveautomation.com/u/nminchin)\
**Post date:** [July 10, 2019, 9:49pm UTC](https://forum.inductiveautomation.com/t/bug-vision-how-do-i-browse-client-tags-in-script-unable-to-browse-client-tags/26293/14 "2019-07-10T21:49:16Z")

</div>

Hmm, I _was_ testing in the Designer however I’ve just tried now in the client and getting the same thing:

```auto
tags = system.tag.browseTags(tagPath='[Client]*', recursive=1)
print tags
for tag in tags: print tag.name

```

Output:  
`array(com.inductiveautomation.ignition.common.script.builtin.ialabs.BrowseTag)`  
Note: no tag names appear.

It would seem that this is a bug?

Edit: I’ve just tried in v8 and it works.
