GeyserMC / Geyser

A bridge/proxy allowing you to connect to Minecraft: Java Edition servers with Minecraft: Bedrock Edition.
https://geysermc.org
MIT License
4.69k stars 674 forks source link

java.util.concurrent.CompleteException #3474

Closed kenryuS closed 1 year ago

kenryuS commented 1 year ago

Describe the bug

I can't connect server with online auth using Microsoft account. the server is papermc 1.19.3 build 358 and Geyser is standalone #1261. The client is bedrock 1.19.51.01.

To Reproduce

  1. setup and run geyser
  2. try connect to the server (bedrock)

Expected behaviour

Screenshots / Videos

Screenshot_20221223-184026

Server Version and Plugins

No response

Geyser Dump

No response

Geyser Version

2.1.0-SNAPSHOT #1261

Minecraft: Bedrock Edition Device/Version

1.19.51.01 Android 11

Additional Context

No response

Konicai commented 1 year ago

Share geyser logs and a dump please - the command is geyser dump

kenryuS commented 1 year ago

oh yeah, I also have to mension that dump is not working. But I still got the log.

By the way, I run geyser on alpine docker container with openjdk 17.0.5.

[02:11:22 INFO] /<client ip>:38394 tried to connect!
[02:11:23 INFO] Player connected with username <name>
[02:11:43 ERROR] Failed to get Microsoft auth code
java.util.concurrent.CompletionException: com.github.steveice10.mc.auth.exception.request.ServiceUnavailableException: Could not make request to 'https://login.microsoftonline.com/consumers/oauth2/v2.0/devicecode'.
        at org.geysermc.geyser.session.PendingMicrosoftAuthentication$AuthenticationTask.tryGetCode(PendingMicrosoftAuthentication.java:139) ~[Geyser-Standalone.jar:?]
        at org.geysermc.geyser.session.PendingMicrosoftAuthentication$AuthenticationTask.lambda$getCode$1(PendingMicrosoftAuthentication.java:126) ~[Geyser-Standalone.jar:?]
        at java.util.concurrent.CompletableFuture$AsyncSupply.run(CompletableFuture.java:1768) [?:?]
        at java.util.concurrent.CompletableFuture$AsyncSupply.exec(CompletableFuture.java:1760) [?:?]
        at java.util.concurrent.ForkJoinTask.doExec(ForkJoinTask.java:373) [?:?]
        at java.util.concurrent.ForkJoinPool$WorkQueue.topLevelExec(ForkJoinPool.java:1182) [?:?]
        at java.util.concurrent.ForkJoinPool.scan(ForkJoinPool.java:1655) [?:?]
        at java.util.concurrent.ForkJoinPool.runWorker(ForkJoinPool.java:1622) [?:?]
        at java.util.concurrent.ForkJoinWorkerThread.run(ForkJoinWorkerThread.java:165) [?:?]
Caused by: com.github.steveice10.mc.auth.exception.request.ServiceUnavailableException: Could not make request to 'https://login.microsoftonline.com/consumers/oauth2/v2.0/devicecode'.
        at com.github.steveice10.mc.auth.util.HTTP.makeRequestForm(HTTP.java:112) ~[Geyser-Standalone.jar:?]
        at com.github.steveice10.mc.auth.service.MsaAuthenticationService.getAuthCode(MsaAuthenticationService.java:95) ~[Geyser-Standalone.jar:?]
        at org.geysermc.geyser.session.PendingMicrosoftAuthentication$AuthenticationTask.tryGetCode(PendingMicrosoftAuthentication.java:137) ~[Geyser-Standalone.jar:?]
        ... 8 more
Caused by: java.net.UnknownHostException: login.microsoftonline.com
        at sun.nio.ch.NioSocketImpl.connect(NioSocketImpl.java:567) ~[?:?]
        at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:327) ~[?:?]
        at java.net.Socket.connect(Socket.java:633) ~[?:?]
        at sun.security.ssl.SSLSocketImpl.connect(SSLSocketImpl.java:304) ~[?:?]
        at sun.net.NetworkClient.doConnect(NetworkClient.java:178) ~[?:?]
        at sun.net.www.http.HttpClient.openServer(HttpClient.java:531) ~[?:?]
        at sun.net.www.http.HttpClient.openServer(HttpClient.java:636) ~[?:?]
        at sun.net.www.protocol.https.HttpsClient.<init>(HttpsClient.java:266) ~[?:?]
        at sun.net.www.protocol.https.HttpsClient.New(HttpsClient.java:380) ~[?:?]
        at sun.net.www.protocol.https.AbstractDelegateHttpsURLConnection.getNewHttpClient(AbstractDelegateHttpsURLConnection.java:193) ~[?:?]
        at sun.net.www.protocol.http.HttpURLConnection.plainConnect0(HttpURLConnection.java:1287) ~[?:?]
        at sun.net.www.protocol.http.HttpURLConnection.plainConnect(HttpURLConnection.java:1128) ~[?:?]
        at sun.net.www.protocol.https.AbstractDelegateHttpsURLConnection.connect(AbstractDelegateHttpsURLConnection.java:179) ~[?:?]
        at sun.net.www.protocol.http.HttpURLConnection.getOutputStream0(HttpURLConnection.java:1430) ~[?:?]
        at sun.net.www.protocol.http.HttpURLConnection.getOutputStream(HttpURLConnection.java:1401) ~[?:?]
        at sun.net.www.protocol.https.HttpsURLConnectionImpl.getOutputStream(HttpsURLConnectionImpl.java:220) ~[?:?]
        at com.github.steveice10.mc.auth.util.HTTP.performPostRequest(HTTP.java:190) ~[Geyser-Standalone.jar:?]
        at com.github.steveice10.mc.auth.util.HTTP.makeRequestForm(HTTP.java:110) ~[Geyser-Standalone.jar:?]
        at com.github.steveice10.mc.auth.service.MsaAuthenticationService.getAuthCode(MsaAuthenticationService.java:95) ~[Geyser-Standalone.jar:?]
        at org.geysermc.geyser.session.PendingMicrosoftAuthentication$AuthenticationTask.tryGetCode(PendingMicrosoftAuthentication.java:137) ~[Geyser-Standalone.jar:?]
        ... 8 more
[02:11:43 INFO] Bedrock user with ip: /<client ip> has disconnected for reason java.util.concurrent.CompletionException: com.github.steveice10.mc.auth.exception.request.ServiceUnavailableException: Could not make request to 'https://login.microsoftonline.com/consumers/oauth2/v2.0/devicecode'.
> geyser dump
[02:12:20 INFO] Collecting dump info
[02:12:20 INFO] Uploading dump
[02:12:25 INFO] Failed to upload dump, check console for more information
[02:12:25 ERROR] Failed to upload dump
java.net.UnknownHostException: dump.geysermc.org
        at sun.nio.ch.NioSocketImpl.connect(NioSocketImpl.java:567) ~[?:?]
        at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:327) ~[?:?]
        at java.net.Socket.connect(Socket.java:633) ~[?:?]
        at sun.security.ssl.SSLSocketImpl.connect(SSLSocketImpl.java:304) ~[?:?]
        at sun.security.ssl.BaseSSLSocketImpl.connect(BaseSSLSocketImpl.java:174) ~[?:?]
        at sun.net.NetworkClient.doConnect(NetworkClient.java:183) ~[?:?]
        at sun.net.www.http.HttpClient.openServer(HttpClient.java:531) ~[?:?]
        at sun.net.www.http.HttpClient.openServer(HttpClient.java:636) ~[?:?]
        at sun.net.www.protocol.https.HttpsClient.<init>(HttpsClient.java:266) ~[?:?]
        at sun.net.www.protocol.https.HttpsClient.New(HttpsClient.java:380) ~[?:?]
        at sun.net.www.protocol.https.AbstractDelegateHttpsURLConnection.getNewHttpClient(AbstractDelegateHttpsURLConnection.java:193) ~[?:?]
        at sun.net.www.protocol.http.HttpURLConnection.plainConnect0(HttpURLConnection.java:1242) ~[?:?]
        at sun.net.www.protocol.http.HttpURLConnection.plainConnect(HttpURLConnection.java:1128) ~[?:?]
        at sun.net.www.protocol.https.AbstractDelegateHttpsURLConnection.connect(AbstractDelegateHttpsURLConnection.java:179) ~[?:?]
        at sun.net.www.protocol.http.HttpURLConnection.getOutputStream0(HttpURLConnection.java:1430) ~[?:?]
        at sun.net.www.protocol.http.HttpURLConnection.getOutputStream(HttpURLConnection.java:1401) ~[?:?]
        at sun.net.www.protocol.https.HttpsURLConnectionImpl.getOutputStream(HttpsURLConnectionImpl.java:220) ~[?:?]
        at org.geysermc.geyser.util.WebUtils.post(WebUtils.java:114) ~[Geyser-Standalone.jar:?]
        at org.geysermc.geyser.command.defaults.DumpCommand.execute(DumpCommand.java:123) [Geyser-Standalone.jar:?]
        at org.geysermc.geyser.command.GeyserCommandManager.runCommand(GeyserCommandManager.java:185) [Geyser-Standalone.jar:?]
        at org.geysermc.geyser.platform.standalone.GeyserStandaloneLogger.runCommand(GeyserStandaloneLogger.java:47) [Geyser-Standalone.jar:?]
        at net.minecrell.terminalconsole.SimpleTerminalConsole.processInput(SimpleTerminalConsole.java:87) [Geyser-Standalone.jar:?]
        at net.minecrell.terminalconsole.SimpleTerminalConsole.readCommands(SimpleTerminalConsole.java:168) [Geyser-Standalone.jar:?]
        at net.minecrell.terminalconsole.SimpleTerminalConsole.start(SimpleTerminalConsole.java:141) [Geyser-Standalone.jar:?]
        at org.geysermc.geyser.platform.standalone.GeyserStandaloneBootstrap.onEnable(GeyserStandaloneBootstrap.java:232) [Geyser-Standalone.jar:?]
        at org.geysermc.geyser.platform.standalone.GeyserStandaloneBootstrap.onEnable(GeyserStandaloneBootstrap.java:169) [Geyser-Standalone.jar:?]
        at org.geysermc.geyser.platform.standalone.GeyserStandaloneBootstrap.main(GeyserStandaloneBootstrap.java:163) [Geyser-Standalone.jar:?]
> 
onebeastchris commented 1 year ago

unknown host exception would probably mean that your server can't reach geyser's site to upload the dump, which also might explain why signing in didn't succeed.. are you sure outbound traffic is allowed/possible on your server?

kenryuS commented 1 year ago

Am I wrong to set my public IP as a java server address (the Java server is also in the docker container)?

onebeastchris commented 1 year ago

Is this issue still ocurring? Also no, that should work. The issue here is that your docker container seemingly cannot/could not access web services; probably because of a strict outbound firewall

onebeastchris commented 1 year ago

Closing due to no response.