BoneIndexOffset Error with USDZ model and ECS

I am loading a USDZ model as into the game client (from a ghost). However, I’m getting this error and have no clue where it is coming from or how to fix it. I can’t find information online either.
Here’s the error:

ArgumentException: A component with type:BoneIndexOffset has not been added to the entity.
Unity.Entities.EntityComponentStore.AssertEntityHasComponent (Unity.Entities.Entity entity, Unity.Entities.ComponentType componentType) (at Library/PackageCache/com.unity.entities@0.4.0-preview.10/Unity.Entities/EntityComponentStoreDebug.cs:233)
Unity.Entities.EntityComponentStore.AssertEntityHasComponent (Unity.Entities.Entity entity, System.Int32 componentType) (at Library/PackageCache/com.unity.entities@0.4.0-preview.10/Unity.Entities/EntityComponentStoreDebug.cs:239)
Unity.Entities.ComponentDataFromEntity`1[T].get_Item (Unity.Entities.Entity entity) (at Library/PackageCache/com.unity.entities@0.4.0-preview.10/Unity.Entities/Iterators/ComponentDataFromEntity.cs:133)
Unity.Rendering.CopySkinnedEntityDataToRenderEntity+IterateSkinnedEntityRefJob.Execute (Unity.Entities.Entity entity, System.Int32 index, Unity.Rendering.SkinnedEntityReference& skinnedEntity, Unity.Rendering.BoneIndexOffsetMaterialProperty& boneIndexOffset) (at Library/PackageCache/com.unity.rendering.hybrid@0.3.2-preview.17/Unity.Rendering.Hybrid/CopySkinnedEntityDataToRenderEntity.cs:27)
Unity.Entities.JobForEachExtensions+JobStruct_Process_ECC`3[T,T0,T1].ExecuteChunk (Unity.Entities.JobForEachExtensions+JobStruct_Process_ECC`3[T,T0,T1]& jobData, System.IntPtr bufferRangePatchData, System.Int32 begin, System.Int32 end, Unity.Entities.ArchetypeChunk* chunks, System.Int32* entityIndices) (at Library/PackageCache/com.unity.entities@0.4.0-preview.10/Unity.Entities/IJobForEach.gen.cs:2095)
Unity.Entities.JobForEachExtensions+JobStruct_Process_ECC`3[T,T0,T1].Execute (Unity.Entities.JobForEachExtensions+JobStruct_Process_ECC`3[T,T0,T1]& jobData, System.IntPtr additionalPtr, System.IntPtr bufferRangePatchData, Unity.Jobs.LowLevel.Unsafe.JobRanges& ranges, System.Int32 jobIndex) (at Library/PackageCache/com.unity.entities@0.4.0-preview.10/Unity.Entities/IJobForEach.gen.cs:2065)

So this seems to be a bug. Gut feeling is that this is meant to work with the unreleased (or rather currently semi-private) Unity.animation package. This is how I suppress the error until the bug is fixed:

public class HacksSystem : ComponentSystem {
	protected override void OnUpdate() {
		/* Suppresses the error: "ArgumentException: A component with type:BoneIndexOffset has not been added to the entity.", until the Unity bug is fixed. */
		World.GetOrCreateSystem<CopySkinnedEntityDataToRenderEntity>().Enabled = false;
	}
}

Here’s a version of Nicolas’ solution for Entities 0.8 that doesn’t run every frame.

using Unity.Entities;
using Unity.Rendering;

// https://answers.unity.com/questions/1695108/boneindexoffset-error-with-usdz-model-and-ecs.html

[UpdateInGroup(typeof(InitializationSystemGroup))]
public class BugFixCopySkinnedEntityData : SystemBase
{
    /* Suppresses the error: "ArgumentException: A component with type:BoneIndexOffset 
    * has not been added to the entity.", until the Unity bug is fixed. */

    protected override void OnCreate()
    {
        World.GetOrCreateSystem<CopySkinnedEntityDataToRenderEntity>().Enabled = false;
        Enabled = false;
        World.DestroySystem(this);
    }

    protected override void OnUpdate() => throw new System.NotImplementedException();
}

These fixes here are just to stop the error from throwing, but don’t address the underlying cause. I got this error from converting a GameObject with a SkinnedMeshRenderer to an Entity. It appears, most likely, the Hybrid Rendering package is not adding the BoneIndexOffset component to the generated Entity at the time of object conversion. Creating an AuthoringComponent to add the BoneIndexOffset and attaching it to the object that has the SkinnedMeshRenderer will resolve the problem.

[DisallowMultipleComponent]
[RequiresEntityConversion]
public class BoneIndexOffestAuthoring : MonoBehaviour, IConvertGameObjectToEntity
{
    
    public void Convert(Entity entity, EntityManager dstManager, GameObjectConversionSystem conversionSystem)
    {
        dstManager.AddComponentData(entity, new BoneIndexOffset {});
    }
}