Código aleatorio Indy ResponseCode = -1 / EIdSocketError Socket Error # 0 excepciones

Tengo un código de Delphi que básicamente carga archivos a remotoseguro servidor usandoIndy 10.4.704:

<code> IdHTTP                 := TIdHTTP.Create(nil);
 try
    TheCompressor       := TIdCompressorZLib.Create(nil);
    TheSSL              := TIdSSLIOHandlerSocketOpenSSL.Create(nil);

    with IdHTTP do
    begin
         HTTPOptions     := [hoForceEncodeParams];
         AllowCookies    := True;
         HandleRedirects := True;
         ProtocolVersion := pv1_1;

         IOHandler       := TheSSL;
         Compressor      := TheCompressor;
    end;    // with

    // Get upload resume offset
    try
       IdHttp.Head('https://www.domain.com/my-file.bin');
       if (IdHttp.Response.ResponseCode <> 404) And (IdHttp.Response.ContentLength >= 0) then
          StartPos   := IdHttp.Response.ContentLength
       else
           StartPos  := 0;
    except
          StartPos   := 0;
    end;    // try/except

    // Upload File
    TheFile          := TFileStream.Create(FileName, fmOpenRead OR fmShareDenyWrite);
    RangeStream      := TIdHTTPRangeStream.Create(TheFile, StartPos, -1, True);
    try
       if (RangeStream.ResponseCode = 206) then
          IdHTTP.Post(https://www.domain.com/upload.php', RangeStream);
    finally
           RangeStream.Free;
    end;    // try/finally
 finally
        FreeAndNil(IdHTTP);
 end;    // try/finally
</code>

El problema es esealgunas veces el código falla con Indy lanzando unError EIdSocketError Socket # 0 excepciónidHTTP.ResponseCode es -1)

Dada mi mala conexión a Internet, lancé una instancia de Windows EC2 y probé mi código en ella (la instancia de Windows se ejecuta en la nube, así que asumo la conexiónno es un problema), pero tengo el mismo problema!

El error parece ser aleatorio, a veces la carga funciona, a veces no. Depuré con TidLogFile, todo lo que pude encontrar es algo como esto:

<code>Stat Connected.
Sent 4/26/2012 4:18:42: POST /app/upload.php...
Sent 4/26/2012 4:18:42: <uploaded_file_data_here>
Stat Disconnected.
</code>

¿Alguien sabe lo que está causando esto / cómo solucionar esto?

EDITAR

I rastreó la excepción de nuevo a TIdSSLIOHandlerSocketOpenSSL. Busqué en Google mucho, parece que no es un error de SSL.

Respuestas a la pregunta(1)

Su respuesta a la pregunta