A red "?" Image is displayed when the image saved in the terminal is loaded

We are processing to save the image on the terminal.

    string l_newName = "";
    l_newName += UnityEngine.Application.productName + "_";
    l_newName += System.DateTime.Now.Year.ToString();
    l_newName += System.DateTime.Now.Month.ToString();
    l_newName += System.DateTime.Now.Day.ToString();
    l_newName += System.DateTime.Now.Hour.ToString();
    l_newName += System.DateTime.Now.Minute.ToString();
    l_newName += System.DateTime.Now.Second.ToString();
    l_newName += "_thumbnail_";
    l_newName += ".jpg";
    string l_save_path = UnityEngine.Application.persistentDataPath + "/thumbnail/" + l_newName;

#if UNITY_IOS
    UnityEngine.iOS.Device.SetNoBackupFlag( l_save_path );
#endif
    byte[] l_pngData = createReadabeTexture2D(l_sprite.texture).EncodeToJPG(100);
   
    File.WriteAllBytes( l_save_path, l_pngData );

I saved it on the terminal like this, but when I read this image, the image of “?” In red may be displayed.
The reading process is as follows.

private Texture2D readTexture( string a_path )
{
    Texture2D l_texture = new Texture2D( 0, 0 );
    if( !System.IO.File.Exists( a_path ) )    return l_texture;
   
    byte[] l_bytes;
    try {
        l_bytes = File.ReadAllBytes( a_path );
        if( l_bytes == null )    return l_texture;
        l_texture.LoadImage(l_bytes);
        l_bytes = null;
    } catch (Exception e){
        l_bytes = null;
        return null;
    }
    return l_texture;
}

I also included the process that failed to read, but the recovery process when it failed on the terminal is not working either, so
It is assumed that the file exists and the reading is successful.

I’d like to know the reason why the red “?” Is displayed, but do you know how to detect it when it fails?

I look forward to working with you.

red ‘?’ means that image failed to load. the code looks sane, can you create a small repro project and bugreport (drop case number here)?