Select to view content in your preferred language

Apply Asset Package errors with "OID-based relationships must use same width of object ID"

868
4
Jump to solution
01-04-2026 03:07 PM
EdwardBlair
Frequent Contributor

Hi -

So, I added to a UPDM asset package an annotation class that has a relationship as follows:

Origin class:  PipelineJunction

Origin Primary Key: OBJECTID (ObjectID)

Destination class:  SVT_Order_Anno

Destination Foreign Key: FeatureID (Long) 

Running "Apply Asset Package" results in the error in the subject (when I remove the relationship the GP tool works without error).

I *thought* an ObjectID had a data type of "Long" - but apparently not.    Any suggestions on how to resolve this would be much appreciated.

Thx,

Ed

0 Kudos
1 Solution

Accepted Solutions
VenkataKondepati
Frequent Contributor

You can’t use OBJECTID for this, even though it looks like a Long.

In Utility Network / UPDM asset packages, relationships cannot use OBJECTID as the primary key. While OBJECTID is internally stored as a 32-bit integer, it is system-managed, non-stable, and not a true user key, so the asset package validator rejects it.

How to fix it:

Add a user-managed Long or GlobalID field on PipelineJunction

Populate it (or use GlobalID / GUID)

Point SVT_Order_Anno.FeatureID to that field instead

Re-run Apply Asset Package

OBJECTID may be numeric, but it’s not valid for relationship classes in asset packages. Use a stable user field (preferably GlobalID).

Regards,
Venkat
Book a meeting with me:Get on a Call
Follow me on: LinkedIn

If this response helps or is the solution to your post, please consider marking it as a solution

View solution in original post

4 Replies
VenkataKondepati
Frequent Contributor

You can’t use OBJECTID for this, even though it looks like a Long.

In Utility Network / UPDM asset packages, relationships cannot use OBJECTID as the primary key. While OBJECTID is internally stored as a 32-bit integer, it is system-managed, non-stable, and not a true user key, so the asset package validator rejects it.

How to fix it:

Add a user-managed Long or GlobalID field on PipelineJunction

Populate it (or use GlobalID / GUID)

Point SVT_Order_Anno.FeatureID to that field instead

Re-run Apply Asset Package

OBJECTID may be numeric, but it’s not valid for relationship classes in asset packages. Use a stable user field (preferably GlobalID).

Regards,
Venkat
Book a meeting with me:Get on a Call
Follow me on: LinkedIn

If this response helps or is the solution to your post, please consider marking it as a solution
EdwardBlair
Frequent Contributor

Ok.  Thanks.  Will give the GlobalID a try.   Fingers crossed.

Ed

EdwardBlair
Frequent Contributor

Worked as described.  Thanks!  

Also found that anno expressions don't seems to work in JScript -- but they do in Arcade, so am going to make life simple(r) and stick with Arcade.

Ed

RobertKrisher
Esri Regular Contributor

@EdwardBlair you'll want to migration the feature linked annotation class to use global ids.

0 Kudos