Why using input array type in some shaders failes - "subscripted value is not an array.." ?

I’m adding a float array type as shown hereafter, but accessing an element in the vector results with compiling error: "subscripted value is not an array, matrix, or vector ".

This happens when doing so in PathTracing.usf shader as shown here after, but doing the same in SSDSignalFramework.ush (for example) works fine.

File: PathTracing.cpp

BEGIN_SHADER_PARAMETER_STRUCT(FPathTracingData, )
        SHADER_PARAMETER(uint32, Iteration)
           :
	SHADER_PARAMETER_ARRAY(float, testv, [5])  // <-------- here
END_SHADER_PARAMETER_STRUCT()

File: PathTracing.usf

uint Iteration;
       :
float testv[5];   // <-------- here

        :
RAY_TRACING_ENTRY_RAYGEN(PathTracingMainRG)
{
	uint2 DispatchIdx = DispatchRaysIndex().xy;
	uint2 DispatchDim = DispatchRaysDimensions().xy;
       :
      float PathRoughness = 0 + testv[0];   // <-------- just testing here
       :
}

The compiling fails due to:

error: subscripted value is not an array, matrix, or vector  
float PathRoughness = 0 + testv[0];
                          ~~~~~^~

If I do the same for SSDSignalFramework.ush , it works well:

File: ScreenSpaceDenoise.cpp

BEGIN_SHADER_PARAMETER_STRUCT(FSSDConvolutionMetaData, )
	SHADER_PARAMETER_ARRAY(FVector4, LightPositionAndRadius, [IScreenSpaceDenoiser::kMaxBatchSize]) 
            :
	SHADER_PARAMETER_ARRAY(float, testv, [5])    // <-------- here
END_SHADER_PARAMETER_STRUCT()

File: SSDSignalFramework.ush

float4 LightPositionAndRadius[MAX_SIGNAL_BATCH_SIZE];
       :
float testv[5];  // <-------- here

        :

FSSDSignalDomainKnowledge GetSignalDomainKnowledge(uint BatchedSignalId)
{
	FSSDSignalDomainKnowledge SignalDomain;
	SignalDomain.Light.InvRadius = 0;
                :
	SignalDomain.HitDistanceToWorldBluringRadius=
                  HitDistanceToWorldBluringRadius[BatchedSignalId]  + 
                  testv[0];  // <- just testing here

                :
}