Not enough data provided while loading bytes downloaded from url picture to Texture2D

I am downloading a picture from this URL:
using Unity Request:

 coroutineStarter.StartCoroutine(SendRequestCoroutine(request, (finishedRequest) => {
                if(finishedRequest.isNetworkError || finishedRequest.isHttpError)
                {
                    callback(GetHumanReadableErrorInfo(finishedRequest), null);
                }
                else
                {
                    callback(null, finishedRequest.downloadHandler.data);
                }

private static IEnumerator SendRequestCoroutine(UnityWebRequest requestToSend,                  
     Action<UnityWebRequest> callback)
        {
            yield return requestToSend.SendWebRequest();
            callback(requestToSend);
        }

I am sure that image dims are 320x320, and i create a texture like this:

var profilePicTexture = new Texture2D(pictureData.Width, 
     pictureData.Height, TextureFormat.RGBA32, false); 
     profilePicTexture.LoadRawTextureData( bytes); // bytes are the result of request functions above

I get this error on the last line: not enough data provided (will result in overread)

SO: I did not manage to get the LoadRawTextureData working,
but i was able to load the texture from URL in 2 other ways:

  1. Texture2D.LoadImage

    The documentation does not say it has an overload with second bool parameter - but I had to set that one to false to make it work.

    I chose this one eventually, as it is more flexible : This way let’s you retrieve the bytes in any way

  2. WWW.LoadImageIntoTexture

Both functions will resize your texture as needed, and you don’t need to specify image type for them.