ECS Runtime-created collider is unique by default - possible BUG?

I have a DynamicBuffer of positions on which I want to create sphere colliders. I am using following system to create colliders in runtime:

partial struct CreateCollidersSystem : ISystem
{
    private BlobAssetReference<Unity.Physics.Collider> CreatedColliderBlob;

    [BurstCompile]
    public void OnUpdate(ref SystemState state)
    {
        // Do it only once
        state.Enabled = false;

        // Define sphere geometry
        SphereGeometry sphereGeometry = new SphereGeometry
        {
            Center = float3.zero,
            Radius = 1f
        };

        // Create collider blob
        CreatedColliderBlob = Unity.Physics.SphereCollider.Create(sphereGeometry, new CollisionFilter
        {
            BelongsTo = (uint)CollisionLayers.Ground,
            CollidesWith = (uint)CollisionLayers.Players
        });

        EntityCommandBuffer ecb = new EntityCommandBuffer(Allocator.Temp);
        DynamicBuffer<WaypointElement> waypointsBuffer = SystemAPI.GetSingletonBuffer<WaypointElement>();
        
        // Add collider to each point in buffer
        foreach (WaypointElement waypoint in waypointsBuffer)
        {
            ecb.AddComponent(waypoint.Entity, new PhysicsCollider { Value = CreatedColliderBlob });
            ecb.AddSharedComponent(waypoint.Entity, new PhysicsWorldIndex { Value = 0 });
        }

        ecb.Playback(state.EntityManager);
        ecb.Dispose();
    }

    [BurstCompile]
    public void OnDestroy(ref SystemState state)
    {
        if (CreatedColliderBlob.IsCreated)
            CreatedColliderBlob.Dispose();
    }
}

Although colliders are created correctly, after inspection in editor I can see that each one is marked as unique:

Why it should be unique when I am using single blob to define all the colliders? I believe correct behaviour should be non-unique state by default.

Am I missing something here? Or is it a bug? I am using latest versions of the Physics and Entities (1.3.8).

It unfortunately looks like this is currently by design.

Collider.cs:1417

public uint ForceUniqueBlobID; 
// ID used to force a unique collider blob in entities.
// When a collider is manually created or cloned, the ID is set to ~ColliderConstants.k_SharedBlobID
// marking the collider as unique.
// When a collider is created during baking through the blob asset store, the ID is set to
// ColliderConstants.k_SharedBlobID in order to enable sharing of identical collider blobs among entities.
// The sharing is disabled by the baking systems through setting of this value to a unique value when the user
// requests unique collider blobs via the force unique authoring option.
1 Like

Ah, ok, thanks for response, that’s unfortunate indeed. Maybe someone from Unity ECS devs could respond what’s the reason behind it?