Using CreateAbstractDefaultSubobject

Recently derived a class from UStaticMeshComponent. In a base actor class, I have this line:

mesh = CreateAbstractDefaultSubobject<UStaticMeshComponent>(TEXT("Mesh"));

And in a derived actor class, say ActorThing, I try to override mesh:

mesh = CreateDefaultSubobject<UStaticMeshComponent, UDerivedMeshComponent>(TEXT("Mesh"));

But I get this error when trying to run the project:

Objects have the same fully qualified name but different paths.
	New Object: DerivedMeshComponent/Script/Project.Default__ActorThing.Mesh
	Existing Object: StaticMeshComponent /Script/Project.Default__ActorThing:Mesh

I’ve used CreateAbstractDefaultSubobject() on a UShapeComponent before, and it worked fine being overriden. Why does this not work? Is it because UStaticMeshComponent isn’t an abstract class? I thought it was because I had existing actors of type ActorThing in the world, but after deleting all off them, this error still persisted. What’s wrong and how do I fix it?

Edit: Changed to an abstract base, still getting that error.