gorilla-devs/GDLauncher

New instance download results in HTTP 400 errors

DoubleYouGTT opened this issue · 3 comments

  • I searched the issue tracker for other issues covering my case
  • This is a Launcher issue. (Usually if you can reproduce it with a fresh instance)

Describe the bug
Creating a new instance (or any modded version) fails to download (or seems to be really slow at around 1 kb/s max), with a lot of errors. New install of GDLauncher.

To Reproduce
Steps to reproduce the behavior:

  1. Open GDLauncher
  2. Create new instance
  3. See slow percentage and lots of HTTP 400 errors.

Expected behavior
Regular download of instance.

Screenshots
image

Operating System:

  • OS: Windows 11
  • Launcher Version: v1.1.29
  • Java Version: auto-downloaded by GDlauncher
  • Minecraft Version: Tried with 1.19.2 and 1.19.3, both have issue.
  • Mod Loader: Tried downloading Vanilla and Fabric, both have issue.

Additional context
Seems to be different from existing issue #1491 in that downloading from the beginning already fails (issue #1491 refers to specific library after instance download already succeeded).

I'm seeing the same issue, just installed gd launcher from the website on a new windows 11 install.
The issue seems to be that all of the minecraft resources are being requested as http, when they need to be https
e.g. http://resources.download.minecraft.net/35/35804fade414c6d27ab36816569828d4d8483078 doesn't work in a browser, but will work if changed to https://resources.download.minecraft.net/35/35804fade414c6d27ab36816569828d4d8483078

Can confirm, I am seeing the same thing - this happens both when creating a new instance or trying to update an instance from 1.19.2 to 1.19.3.
image

Additionally, here is the output from curl.

➜  ~ curl -vv http://resources.download.minecraft.net/30/3010d68ad39eb65956436f41e40242b633b91736
*   Trying 13.107.238.57:80...
* TCP_NODELAY set
* Connected to resources.download.minecraft.net (13.107.238.57) port 80 (#0)
> GET /30/3010d68ad39eb65956436f41e40242b633b91736 HTTP/1.1
> Host: resources.download.minecraft.net
> User-Agent: curl/7.68.0
> Accept: */*
>
* Mark bundle as not supporting multiuse
< HTTP/1.1 400 Bad Request
< Content-Length: 289
< Content-Type: application/xml
< X-Cache: TCP_MISS
< Server: Microsoft-HTTPAPI/2.0
< x-ms-request-id: f299ce12-d01e-001a-5eb5-2aa7fa000000
< X-Azure-Ref: 0zwrHYwAAAABIIjDmfuM/T5RlEKigGEuqU04xRURHRTMxMTYAMTUxYTk3ZmItYzBiZS00ODZlLWJmMmQtYmM2NTI1M2NmMDJh
< Date: Tue, 17 Jan 2023 20:53:35 GMT
<
<?xml version="1.0" encoding="utf-8"?><Error><Code>AccountRequiresHttps</Code><Message>The account being accessed does not support http.
RequestId:f299ce12-d01e-001a-5eb5-2aa7fa000000
* Connection #0 to host resources.download.minecraft.net left intact
Time:2023-01-17T20:53:35.9771144Z</Message><AccountName>resourcesdownloadminecra</AccountName></Error>% 

Updating the url to be HTTPS instead of HTTP, yields a correct result. My guess is microsoft is forcing HTTPS downloads now instead of allowing HTTP.

➜  ~ curl -vv https://resources.download.minecraft.net/30/3010d68ad39eb65956436f41e40242b633b91736
*   Trying 13.107.238.57:443...
* TCP_NODELAY set
* Connected to resources.download.minecraft.net (13.107.238.57) port 443 (#0)
* ALPN, offering h2
* ALPN, offering http/1.1
* successfully set certificate verify locations:
*   CAfile: /etc/ssl/certs/ca-certificates.crt
  CApath: /etc/ssl/certs
* TLSv1.3 (OUT), TLS handshake, Client hello (1):
* TLSv1.3 (IN), TLS handshake, Server hello (2):
* TLSv1.2 (IN), TLS handshake, Certificate (11):
* TLSv1.2 (IN), TLS handshake, Server key exchange (12):
* TLSv1.2 (IN), TLS handshake, Server finished (14):
* TLSv1.2 (OUT), TLS handshake, Client key exchange (16):
* TLSv1.2 (OUT), TLS change cipher, Change cipher spec (1):
* TLSv1.2 (OUT), TLS handshake, Finished (20):
* TLSv1.2 (IN), TLS handshake, Finished (20):
* SSL connection using TLSv1.2 / ECDHE-RSA-AES256-GCM-SHA384
* ALPN, server accepted to use h2
* Server certificate:
*  subject: C=US; ST=WA; L=Redmond; O=Microsoft Corporation; CN=resources.download.minecraft.net
*  start date: Oct 21 11:39:01 2022 GMT
*  expire date: Oct 16 11:39:01 2023 GMT
*  subjectAltName: host "resources.download.minecraft.net" matched cert's "resources.download.minecraft.net"
*  issuer: C=US; O=Microsoft Corporation; CN=Microsoft Azure TLS Issuing CA 05
*  SSL certificate verify ok.
* Using HTTP2, server supports multi-use
* Connection state changed (HTTP/2 confirmed)
* Copying HTTP/2 data in stream buffer to connection buffer after upgrade: len=0
* Using Stream ID: 1 (easy handle 0x56291d93a2f0)
> GET /30/3010d68ad39eb65956436f41e40242b633b91736 HTTP/2
> Host: resources.download.minecraft.net
> user-agent: curl/7.68.0
> accept: */*
>
* Connection state changed (MAX_CONCURRENT_STREAMS == 100)!
< HTTP/2 200
< content-length: 394410
< content-type: text/plain
< content-md5: QI8SU8bUX/8vxThjTamVDw==
< last-modified: Wed, 07 Dec 2022 09:13:47 GMT
< etag: 0x8DAD83358C99829
< x-cache: TCP_HIT
< server: Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0
< x-ms-request-id: 68829df7-301e-004a-77c4-29e470000000
< x-ms-version: 2009-09-19
< x-ms-lease-status: unlocked
< x-ms-blob-type: BlockBlob
< x-azure-ref: 0SwvHYwAAAAAxQkrsus9vTKDCUDwh79+FU04xRURHRTMwMTMAMTUxYTk3ZmItYzBiZS00ODZlLWJmMmQtYmM2NTI1M2NmMDJh
< date: Tue, 17 Jan 2023 20:55:38 GMT
<
{
    "addServer.add": "Aceptar",
    "addServer.enterIp": "Dirección IP",
    "addServer.enterName": "Nombre del server",
    "addServer.hideAddress": "Ocultar dirección IP",
    "addServer.resourcePack": "Recursos del server",
    "addServer.resourcePack.disabled": "Desactivado",
    "addServer.resourcePack.enabled": "Activado",
    "addServer.resourcePack.prompt": "Preguntar",
    "addServer.title": "Información del server",
    "advMode.allEntities": "Usa \"@e\" para seleccionar todas las entidades",
    "advMode.allPlayers": "Usa \"@a\" para elegir a todos los jugadores",
    "advMode.command": "Comando de consola",
    "advMode.mode": "Modo",
    "advMode.mode.auto": "Repetición",
    "advMode.mode.autoexec.bat": "Siempre activo",
    "advMode.mode.conditional": "Condicional",
    "advMode.mode.redstone": "Impulso",
    "advMode.mode.redstoneTriggered": "Necesita redstone",
    "advMode.mode.sequence": "En cadena",
    "advMode.mode.unconditional": "Incondicional",
    "advMode.nearestPlayer": "Usa \"@p\" para elegir al jugador más cercano",
    "advMode.notAllowed": "Se necesita ser operador y estar en modo creativo",
    "advMode.notEnabled": "Los bloques de comandos no están habilitados en este server",
    "advMode.previousOutput": "Comando anterior",
    "advMode.randomPlayer": "Usa \"@r\" para elegir un jugador al azar",

Submitted pull request.