UWorld::SweepSingleByChannel does not work as documented (wrong normal)?

I’m doing a trace with a sphere shape (sphere sweep query), but find it tends to give wrong normal in case of initial penetration.

The thick red line in the picture is the trace (towards the wall). The red sphere draw show the size of sphere shape.
The thick green line is the Normal (== ImpactNormal) it returns.

As you see, the normal doesn’t perpendicular to the wall.

I know the case with initial penetration is kind of special. But from the related document. I don’t see any reason in any case it should give a normal like this.

One reason I could possibly guess is that, because of the initial penetration, the impact position is considered to be the center of the sphere at the initial position, and the normal is considered to be from the impact position pointing to the center of the sphere at the initial position, as result we have a zero vector for the normal.

But strangely, of the whole big wall, only around that place I have this problem. If I do the same sphere sweep parallel at the other places of the wall, I got perfect normal perpendicular to the wall. You would guess the problematic location is where 2 models stitch together, but I tell you the wall is a complete simple box shape, see the picture below.

So none of the explanations stand. Could anyone help me.

Thanks

God, UE4 is so buggy.