BSP crashes engine when reading tag

Hello ,
So I have a code to detect which type of surface my character is currently standing and returns its tag that I’ll use to determine which footstep sounds to use.
This works for normal static meshes and Primitive Shapes , but for BSPs , it crashes the engine. , The error seems to reside in “ActorHasTag()” , so reading a tag from BSP causes a crash.
The part responsible for this :

//Get Current Floor

	FHitResult fHit;

	const FVector StartTrace = GetActorLocation();
	const FVector d = -GetActorUpVector();
	const FVector end = StartTrace + d*(PlayerCollider->GetScaledCapsuleHalfHeight() + 5);

	FCollisionQueryParams TraceParams(FName(TEXT("")), true, this);
	TraceParams.bTraceAsyncScene = true;
	TraceParams.bReturnPhysicalMaterial = false;
	TraceParams.bTraceComplex = true;


	UWorld* world  = GetWorld();
	if (world)
	{
		
		if (world->LineTraceSingleByChannel(fHit, StartTrace, end, ECC_GameTraceChannel1, TraceParams))
		{
			grounded = true;
			bool f = false;
			int defaultx = -1;
			for (int32 i = 0; i < FootstepSounds.Num(); i++)
			{
				if (FootstepSounds[i].SurfaceTag == "Default") defaultx = i;
					if (fHit.Actor->ActorHasTag(FName(*FootstepSounds[i].SurfaceTag)))
					{
						currentFloor = FootstepSounds[i].SurfaceTag;
						currentFloorIndex = i;
						f = true;
						break;
					}
			}
			if (!f) 
			{
				currentFloor = "Default";
				currentFloorIndex = defaultx;				
			}
		}
		else grounded = false;
	}

Error log