This can happen on the "rare" (coding caused) occasion where the old entity is removed,
and
A new entity is created in the same place in memory in the same frame.
IF the function that does the remove is the same function that does the create,
put a single wait between the remove and the create to give the action time to kill itself.
If thats not managable, try this variation.
action follower_action()
{
wait(1);
ENTITY* ent = ptr_for_handle(my.skill10);
var ID = random(100000);
if(ent) ent.skill75 = ID; //pick a skill number unused by parent entity
while(ent)
{
vec_set(my.x,ent.x);
wait(1);
if(ent!=NULL) if(ent.skill75!=ID) ent = NULL; //dual IF's required
}
}