# BrowseFilter not filtering on object name

**URL:** <https://forum.inductiveautomation.com/t/browsefilter-not-filtering-on-object-name/113734>\
**Category:** Module Development\
**Tags:** ignition83\
**Created:** [February 3, 2026, 7:04pm UTC](https://forum.inductiveautomation.com/t/browsefilter-not-filtering-on-object-name/113734 "2026-02-03T19:04:58Z")\
**Posts on this page:** 7\
**Page:** 1

<div class="post-metadata">

**Author:** ![Ethan\_Brown](https://avatars.discourse-cdn.com/v4/letter/e/9de053/32.png) [@Ethan\_Brown](https://forum.inductiveautomation.com/u/Ethan_Brown)\
**Post date:** [February 3, 2026, 7:04pm UTC](https://forum.inductiveautomation.com/t/browsefilter-not-filtering-on-object-name/113734/1 "2026-02-03T19:04:59Z")

</div>

I’m trying to find all UDT instances and folders that have a given name. This is the filter I’m trying to use.

```java
private BrowseFilter createNameFilter(String name) {
    var filter = new BrowseFilter()
        .setRecursive(true)
        .setAvoidCache(true)
        .setAllowedTypes(new String[]{"UdtInstance", "folder"});
    filter.addProperty(WellKnownTagProps.Name, name);
    return filter;
}

...

var filter = createNameFilter(name);
var browseResult = tagProvider.browseAsync(TagPathParser.parse(""), filter).join();

```

This seems to be ignoring the name filter and returning all UDT and folder instances regardless.  
Any ideas?

---

<div class="post-metadata">

**Author:** ![Ethan\_Brown](https://avatars.discourse-cdn.com/v4/letter/e/9de053/32.png) [@Ethan\_Brown](https://forum.inductiveautomation.com/u/Ethan_Brown)\
**Post date:** [February 3, 2026, 8:38pm UTC](https://forum.inductiveautomation.com/t/browsefilter-not-filtering-on-object-name/113734/2 "2026-02-03T20:38:34Z")

</div>

```java
BasicDescriptiveProperty<String> nameProp = new BasicDescriptiveProperty<>("name", String.class);
    private BrowseFilter createNameFilter(String name) {
        var filter = new BrowseFilter()
                .setRecursive(true)
                .setAvoidCache(true)
                .setAllowedTypes(new String[]{"UdtInstance", "folder"});
        filter.addProperty(nameProp, name);
        return filter;
    }

```

Tried this and it still doesn't work. It's returning me everything.

---

<div class="post-metadata">

**Author:** ![Ethan\_Brown](https://avatars.discourse-cdn.com/v4/letter/e/9de053/32.png) [@Ethan\_Brown](https://forum.inductiveautomation.com/u/Ethan_Brown)\
**Post date:** [February 3, 2026, 8:52pm UTC](https://forum.inductiveautomation.com/t/browsefilter-not-filtering-on-object-name/113734/3 "2026-02-03T20:52:53Z")

</div>

After doing some testing, it seems BrowseFilter as a whole is not working for me.

```java
tagProvider.browseAsync(TagPathParser.parse(""), new BrowseFilter().setAllowedTypes(new String[]{"AtomicTag"})).join()

```

returns everything under the root source regardless of objectType.

---

<div class="post-metadata">

**Author:** ![mrojas](https://sea1.discourse-cdn.com/inductiveautomation/user_avatar/forum.inductiveautomation.com/mrojas/32/6394_2.png) [@mrojas](https://forum.inductiveautomation.com/u/mrojas)\
**Post date:** [February 3, 2026, 11:04pm UTC](https://forum.inductiveautomation.com/t/browsefilter-not-filtering-on-object-name/113734/4 "2026-02-03T23:04:39Z")

</div>

`allowedTypes` refers to a UDTs subtype, not the actual tag type, so that’s why you’re not getting the expected results. I highly recommend using our new Query API, it’s better in a lot of ways. The Query API is much more efficient and supports actual continuations. Here’s what the query looks like.

```python
var query = TagQuery.newBuilder()
    .tagObjectType(TagObjectType.UdtInstance)
    .tagObjectType(TagObjectType.Folder)
    .andProperty(WellKnownTagProps.Name, ComparisonOperator.Equal, "name")
    .build();
var filter = TagQueryFilter.newQuery(query);
var results = provider.queryAsync(filter, SecurityContext.systemContext()).join();

```

---

<div class="post-metadata">

**Author:** ![Ethan\_Brown](https://avatars.discourse-cdn.com/v4/letter/e/9de053/32.png) [@Ethan\_Brown](https://forum.inductiveautomation.com/u/Ethan_Brown)\
**Post date:** [February 3, 2026, 11:54pm UTC](https://forum.inductiveautomation.com/t/browsefilter-not-filtering-on-object-name/113734/5 "2026-02-03T23:54:02Z")

</div>

Am I to understand that

```java
.path("[Default]Folder1")

```

starts the search at this path?  
Forgive me, this api is new to me and there's no forum documentation on it.

---

<div class="post-metadata">

**Author:** ![paul-griffith](https://sea1.discourse-cdn.com/inductiveautomation/user_avatar/forum.inductiveautomation.com/paul-griffith/32/37249_2.png) [@paul-griffith](https://forum.inductiveautomation.com/u/paul-griffith)\
**Post date:** [February 3, 2026, 11:58pm UTC](https://forum.inductiveautomation.com/t/browsefilter-not-filtering-on-object-name/113734/6 "2026-02-03T23:58:53Z")

</div>

`TagQuery` is the same mechanism that backs `system.tag.query` and the tag report tool:

> **[system.tag.query | Ignition User Manual](https://www.docs.inductiveautomation.com/docs/8.3/appendix/scripting-functions/system-tag/system-tag-query)**
>
> Queries a Tag Provider to produce a list of tags that meet the specified criteria.

> **[Tag Report Tool | Ignition User Manual](https://www.docs.inductiveautomation.com/docs/8.3/platform/tags/tag-report-tool)**
>
> The Tag Report Tool allows users to search for tags by multiple criteria, including Tag Path, Quality, Type, Traits, and values on specific Properties.

You could use that to get an idea of the capability.

---

<div class="post-metadata">

**Author:** ![Ethan\_Brown](https://avatars.discourse-cdn.com/v4/letter/e/9de053/32.png) [@Ethan\_Brown](https://forum.inductiveautomation.com/u/Ethan_Brown)\
**Post date:** [February 4, 2026, 12:12am UTC](https://forum.inductiveautomation.com/t/browsefilter-not-filtering-on-object-name/113734/7 "2026-02-04T00:12:30Z")

</div>

That's exactly what I needed. Thank you, sir.
