GeometricPins not updating on entities loaded from reality files

I'm attempting to create GeometricPins on an entity so I can attach objects to game characters. If I load a character from the USD file I can query the joint names on the ModelEntity and create GeometricPins as attachment points. These pins will track the location of the associated joint and I can position my objects at the pin locations as expected.

However, the pins do not update on characters loaded from a Reality File.

In the below image, the Skeleton Mage character in the middle is loaded as a USDC file and I attach the hat with a GeometricPin so that it tracks the movement of the head as it animates.

The animating Skeleton to the left is the same character (same .usdc file) but exported from RCP3 as a Reality File. Notice how the hat does not move with the character's head. The position and orientation of the GeometricPins attached to this character always return nil. I've also noticed that the jointNames array is empty for this entity as well.

Should I be able to access the jointNames and create Geometric pins on entities loaded from Reality files?

I'm adding the pin to the model entity with the following helper function. The helper function is called in the exact same way for the usd and reality entities.

func pinToJoint(_ entity: Entity, to target: Entity, at jointName: String, offset: SIMD3<Float> = .zero, orientation: simd_quatf = .init(angle: 0, axis: [0,1,0])) {
        let pinName = "pin_at_\(jointName)"
        if let rig:ModelEntity = target.findModelEntity() {
            for jointName in rig.jointNames {
                log.info("\(target.name): \(jointName)")
            }
            rig.pins.set(named: pinName, skeletalJointName: jointName, position: offset, orientation: simd_quatf(angle: -.pi/2.0, axis: .init(1,0,0)))
            
            entity.components.set(
                PinnedEntityComponent(
                    pinnedto: rig,
                    pinName: pinName,
                )
            )
        }
    }

The PinnedEntitySystem just assigns the location of the pin to the entity with the following

            guard let pinPosition = pin.position(relativeTo: nil) else { continue }
            guard let pinOrientation = pin.orientation(relativeTo: nil) else { continue }
            entity.setPosition(
                pinPosition
                , relativeTo: nil)
            entity.setOrientation(
                pinOrientation
                , relativeTo: nil)
GeometricPins not updating on entities loaded from reality files
 
 
Q