SetActorRelativeLocation not working unless I add a static mesh component to target actor

I’m using the MoveToActor node in a Character Pawn and I’m setting its Goal to an actor variable called MoveToTarget.
I’m spawning and positioning MoveToTarget in a function called SetMoveToTarget. What this function is supposed to do is

  1. Spawn an empty Actor at the Character Pawn’s position
  2. Set the spawned actor to my MoveToTarget variable
  3. Set MoveToTarget’s relative rotation in a random direction around the Z axis
  4. Set MoveToTarget’s relative location 150 units along its X axis after random rotation is set

After calling my SetMoveToTarget function in my character pawn’s blueprint, I’m calling the MoveToActor node and setting it’s Goal as my newly positioned MoveToTarget actor variable. I’m using the MoveToActor’s Return Value to check if the return value is Failed, Already At Goal, or Request Successful.

What I’m finding is that when setting it up as I just described, MoveToActor returns “Already At Goal.” But if I add and set a static mesh component to my MoveToTarget variable in my SetMoveToTarget function, MoveToActor returns “Request Successful” and MoveToTarget spawns in a random location 150 units away from my character pawn, and the character pawn walks over to the target.

Why does adding a static mesh component to my target actor affect how SetActorRelativeLocation works? Why is this happening? The following two images illustrate the only change I’m making to my SetMoveToTarget function that determines whether my MoveToActor node will return “Request Successful” or “Already At Goal”:

Static Mesh component not being added; can’t set relative location:

Static Mesh component being added; relative location is set correctly:

Would appreciate any help as to why this works the way it does! Ideally I want my target actor to be invisible, but it seems really inefficient to add a mesh and then set it to be invisible, I’d much rather just do this with an empty actor.

Thanks for reading!

Mike