# System.tag.browse() "Error browsing tags through scripting." with relative path

**URL:** <https://forum.inductiveautomation.com/t/system-tag-browse-error-browsing-tags-through-scripting-with-relative-path/114527>\
**Category:** Ignition\
**Tags:** ignition81, scripting\
**Created:** [March 17, 2026, 3:46pm UTC](https://forum.inductiveautomation.com/t/system-tag-browse-error-browsing-tags-through-scripting-with-relative-path/114527 "2026-03-17T15:46:19Z")\
**Posts on this page:** 4\
**Page:** 1

<div class="post-metadata">

**Author:** ![CP5\_Informatica](https://avatars.discourse-cdn.com/v4/letter/c/f04885/32.png) [@CP5\_Informatica](https://forum.inductiveautomation.com/u/CP5_Informatica)\
**Post date:** [March 17, 2026, 3:46pm UTC](https://forum.inductiveautomation.com/t/system-tag-browse-error-browsing-tags-through-scripting-with-relative-path/114527/1 "2026-03-17T15:46:19Z")

</div>

Good afternoon.

I'm developing a value-change script for a specific UDT tag (Ignition **8.1.52** ).  
It seems that the **`system.tag.browse()`** function isn't compatible with the format "[.]../Folder" (relative path).  
An error occurs, logged as: "_ **Error browsing tags through scripting** _." (By the way, the log information is very limited. It doesn't even provide information that would allow me to locate the script.)  
It seems strange to me that the `system.tag.browse()` function isn't compatible with relative paths, since all the other functions are: `getConfiguration()`, `exists()`, `readBlocking()`, `writeBlocking()`.  
To solve this, I had to obtain the absolute (full) path using the `system.tag.getConfiguration()` function from the relative path:

```python
tag_path = "[.]../Dispositivos"

tag_path = str(system.tag.getConfiguration(tag_path, False)[0]["path"])
						
results = system.tag.browse(tag_path, filter = {"name":"Cod_Estado_Elemento","recursive":True})
			
for x in results.getResults():
...
...

```

Best Regards.

---

<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:** [March 17, 2026, 4:00pm UTC](https://forum.inductiveautomation.com/t/system-tag-browse-error-browsing-tags-through-scripting-with-relative-path/114527/2 "2026-03-17T16:00:54Z")

</div>

Tag browsing is a potentially unbounded operation that should never be used in a tag event. Use a gateway event (in a project), not a tag event (like valueChange). Unbounded operations in tag events can bring your entire tag scripting subsystem to a screeching halt.

---

<div class="post-metadata">

**Author:** ![CP5\_Informatica](https://avatars.discourse-cdn.com/v4/letter/c/f04885/32.png) [@CP5\_Informatica](https://forum.inductiveautomation.com/u/CP5_Informatica)\
**Post date:** [March 18, 2026, 9:37am UTC](https://forum.inductiveautomation.com/t/system-tag-browse-error-browsing-tags-through-scripting-with-relative-path/114527/3 "2026-03-18T09:37:32Z")

</div>

Good morning. Thank you for the clarification.

I think that technical detail should be included in the documentation for system.tag.browse(). The error that occurs (_"Error browsing tags through scripting_") doesn't allow us to identify the source of the problem.

I can't directly apply the solution you proposed because it's not possible to specify a **UDT Tag** in a Gateway Event Script (Tag Change). An intermediate solution would be to call a function developed in the project library from within the UDT Tag Change.

Best regards.

---

<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:** [March 18, 2026, 12:44pm UTC](https://forum.inductiveautomation.com/t/system-tag-browse-error-browsing-tags-through-scripting-with-relative-path/114527/4 "2026-03-18T12:44:28Z")

</div>

> [@CP5\_Informatica](#):
>
> intermediate solution

That's not a solution to the unbounded operation problem in tag events. You may need to delegate work to a self-managed queue, as described here:

> [@Java concurrent queue for tag change scripts](https://forum.inductiveautomation.com/t/java-concurrent-queue-for-tag-change-scripts/82044):
>
> Continuing the discussion from [[SOLVED] Are tag Value Changed scripts running asynchronously?](https://forum.inductiveautomation.com/t/solved-are-tag-value-changed-scripts-running-asynchronously/68704/5): We've got code in our standard library that I need to log a value change on a tag and then associate various data points with that value change. The value is located in a UDT, and because this is part of our "standard" library we use for our customers, the number of tags is variable and quite possibly numerous so having a gateway tag event script isn't feasible for this solution. I was reading up on …

You may also want to consider using the [Bulk Script Tag Action](https://www.automation-pros.com/toolkit/doc/actors.html#bulk-script-action) from my Integration Toolkit.
