# \[IGN-13867\] 8.3 issue copying UDTs between tag providers

**URL:** <https://forum.inductiveautomation.com/t/ign-13867-8-3-issue-copying-udts-between-tag-providers/109537>\
**Category:** Ignition 8.3 Early Access\
**Created:** [August 8, 2025, 2:30pm UTC](https://forum.inductiveautomation.com/t/ign-13867-8-3-issue-copying-udts-between-tag-providers/109537 "2025-08-08T14:30:02Z")\
**Posts on this page:** 4\
**Page:** 1

<div class="post-metadata">

**Author:** ![Nathan\_Foster](https://avatars.discourse-cdn.com/v4/letter/n/ecd19e/32.png) [@Nathan\_Foster](https://forum.inductiveautomation.com/u/Nathan_Foster)\
**Post date:** [August 8, 2025, 2:30pm UTC](https://forum.inductiveautomation.com/t/ign-13867-8-3-issue-copying-udts-between-tag-providers/109537/1 "2025-08-08T14:30:02Z")

</div>

When I run automated unit tests, I copy UDTs from the `default` tag provider to a tag provider called `test1` during setup. This worked fine with 8.1 but I’m getting duplicate tags with 8.3. I reduced the issue down to a simple example. I think it has to do with inheritance.

The following is an example UDT structure in the default tag provider. `SubUdt` inherits from `Udt`.

 ![image](https://us1.discourse-cdn.com/inductiveautomation/original/3X/8/a/8a680771cb4e28302124bf2d64839be016d3abc4.png)

When I copy from tag provider `default` to tag provider `test1` with command

`system.tag.copy(["[default]_types_/Test"], "[test1]_types_/", collisionPolicy='o')`

I get duplicate tags in the inherited UDT. The `test1` tag provider was empty before I ran the copy function.

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

Here is a tag export JSON for this example:

```json
{
  "name": "Test",
  "tagType": "Folder",
  "tags": [
    {
      "name": "SubFolder",
      "tagType": "Folder",
      "tags": [
        {
          "name": "SubUdt",
          "typeId": "Test/Udt",
          "tagType": "UdtType",
          "tags": [
            {
              "name": "Integer",
              "tagType": "AtomicTag"
            }
          ]
        }
      ]
    },
    {
      "name": "Udt",
      "tagType": "UdtType",
      "tags": [
        {
          "valueSource": "memory",
          "name": "Integer",
          "value": 5,
          "tagType": "AtomicTag"
        }
      ]
    }
  ]
}

```

---

<div class="post-metadata">

**Author:** ![ggross](https://sea1.discourse-cdn.com/inductiveautomation/user_avatar/forum.inductiveautomation.com/ggross/32/12668_2.png) [@ggross](https://forum.inductiveautomation.com/u/ggross)\
**Post date:** [August 8, 2025, 4:33pm UTC](https://forum.inductiveautomation.com/t/ign-13867-8-3-issue-copying-udts-between-tag-providers/109537/2 "2025-08-08T16:33:09Z")

</div>

Thank you for reporting this. I have confirmed that there is an issue and have filed a bug internally to address it.

Garth

---

<div class="post-metadata">

**Author:** ![Clancy\_Cavanaugh](https://avatars.discourse-cdn.com/v4/letter/c/45deac/32.png) [@Clancy\_Cavanaugh](https://forum.inductiveautomation.com/u/Clancy_Cavanaugh)\
**Post date:** [August 8, 2025, 4:52pm UTC](https://forum.inductiveautomation.com/t/ign-13867-8-3-issue-copying-udts-between-tag-providers/109537/3 "2025-08-08T16:52:59Z")

</div>

I think I have seen this same issue in version 8.1 using system.tag.configure instead of system.tag.copy.

My not so elegant solution was to run the system.tag.configure call twice. The second time cleaned up the duplicate tags. I assume the issue is with the order the UDTs are being created. Basically, copying the child UDT before the parent UDT.

---

<div class="post-metadata">

**Author:** ![Nathan\_Foster](https://avatars.discourse-cdn.com/v4/letter/n/ecd19e/32.png) [@Nathan\_Foster](https://forum.inductiveautomation.com/u/Nathan_Foster)\
**Post date:** [August 8, 2025, 5:38pm UTC](https://forum.inductiveautomation.com/t/ign-13867-8-3-issue-copying-udts-between-tag-providers/109537/4 "2025-08-08T17:38:24Z")

</div>

Yes, I was getting the same issue doing the copy with the system.tag.configure method:

```python
exportString = system.tag.exportTags(tagPaths=["[default]_types_/Test"])
system.tag.configure(basePath="[test1]_types_/", tags=exportString, collisionPolicy='o')

```

but it still worked in 8.1 for me. When I manually export the tags in the designer and re-import them in the other tag provider, it works fine in 8.3.
