goatcorp / Dalamud

FFXIV plugin framework and API
GNU Affero General Public License v3.0
1.17k stars 273 forks source link

Unable to fetch repo #778

Closed ApeironTsuka closed 2 years ago

ApeironTsuka commented 2 years ago
2022-03-19 13:30:32.406 -05:00 [INF] [PLUGINR] Fetching repo: https://kamori.goats.dev/Plugin/PluginMaster
2022-03-19 13:30:32.439 -05:00 [ERR] [PLUGINR] PluginMaster failed: https://kamori.goats.dev/Plugin/PluginMaster
System.Net.Http.HttpRequestException: The SSL connection could not be established, see inner exception.
 ---> System.ComponentModel.Win32Exception (0x80090304): Unknown error (0x80090304)
   at System.Net.SSPIWrapper.AcquireCredentialsHandle(ISSPIInterface secModule, String package, CredentialUse intent, SCH_CREDENTIALS* scc)
   at System.Net.Security.SslStreamPal.AcquireCredentialsHandle(CredentialUse credUsage, SCH_CREDENTIALS* secureCredential)
   at System.Net.Security.SslStreamPal.AcquireCredentialsHandleSchCredentials(X509Certificate certificate, SslProtocols protocols, EncryptionPolicy policy, Boolean isServer)
   at System.Net.Security.SslStreamPal.AcquireCredentialsHandle(SslStreamCertificateContext certificateContext, SslProtocols protocols, EncryptionPolicy policy, Boolean isServer)
   at System.Net.Security.SecureChannel.AcquireClientCredentials(Byte[]& thumbPrint)
   at System.Net.Security.SecureChannel.GenerateToken(ReadOnlySpan`1 inputBuffer, Byte[]& output)
   at System.Net.Security.SecureChannel.NextMessage(ReadOnlySpan`1 incomingBuffer)
   at System.Net.Security.SslStream.ForceAuthenticationAsync[TIOAdapter](TIOAdapter adapter, Boolean receiveFirst, Byte[] reAuthenticationData, Boolean isApm)
   at System.Net.Http.ConnectHelper.EstablishSslConnectionAsyncCore(Boolean async, Stream stream, SslClientAuthenticationOptions sslOptions, CancellationToken cancellationToken)
   --- End of inner exception stack trace ---
   at System.Net.Http.ConnectHelper.EstablishSslConnectionAsyncCore(Boolean async, Stream stream, SslClientAuthenticationOptions sslOptions, CancellationToken cancellationToken)
   at System.Net.Http.HttpConnectionPool.ConnectAsync(HttpRequestMessage request, Boolean async, CancellationToken cancellationToken)
   at System.Net.Http.HttpConnectionPool.CreateHttp11ConnectionAsync(HttpRequestMessage request, Boolean async, CancellationToken cancellationToken)
   at System.Net.Http.HttpConnectionPool.GetHttpConnectionAsync(HttpRequestMessage request, Boolean async, CancellationToken cancellationToken)
   at System.Net.Http.HttpConnectionPool.SendWithRetryAsync(HttpRequestMessage request, Boolean async, Boolean doRequestAuth, CancellationToken cancellationToken)
   at System.Net.Http.RedirectHandler.SendAsync(HttpRequestMessage request, Boolean async, CancellationToken cancellationToken)
   at System.Net.Http.HttpClient.SendAsyncCore(HttpRequestMessage request, HttpCompletionOption completionOption, Boolean async, Boolean emitTelemetryStartStop, CancellationToken cancellationToken)
   at Dalamud.Plugin.Internal.PluginRepository.ReloadPluginMasterAsync() in C:\goatsoft\companysecrets\dalamud\Plugin\Internal\PluginRepository.cs:line 78

OS: Debian Linux Wine: lutris-GE-Proton7-6 (also tested lutris-7.1 and a wine-staging 6.23 I had laying around).

Google isn't super helpful here. Closest I could find was something not working with TLS 1.3 but I can't find anything specific to Wine/Proton about TLS issues. Repo works via Chrome (says via QUIC), wget, and Firefox (says via TLS 1.3), so it shouldn't be an issue with native libraries.

landrevj commented 2 years ago

Was fine when I first installed things through Lutris a couple weeks ago but now experiencing this after updates around 6.1.

OS: Arch Linux Wine: lutris-GE-Proton7-7-X86-64

dalamud.log

reiichi001 commented 2 years ago

You cannot change the wine runner in Lutris without it breaking SSL/TLS support, unfortunately.

If you did that, you'll need to make a new prefix and migrate your FFXIV install and plugin settings.

If you'd like to install XIVLauncher using a different version of wine, please save and adjust the script below. (It should be saved as a .yml file, but github doesn't allow uploading those as attachments). You can then use Lutris from your terminal of choice like lutris -i script.yml to run the installer. (swap esync for fsync if you have a supported kernel too)

game_slug: final-fantasy-xiv-online
name: FINAL FANTASY XIV Online
year: 2014
runner: wine
slug: final-fantasy-xiv-online-xivlauncher
version: XIVLauncher
description: >-
  The script automates installing Final Fantasy XIV by Square Enix using XIVLauncher, a community-created third party launcher with additional features and addons.

  The source code can be found on GitHub at: https://github.com/goatcorp/FFXIVQuickLauncher

  The default installation settings should work for most Linux users without modification, but additional support can be found in the XIVLauncher Discord.

  Big thanks to the people who've helped us play this game in the best conditions on Linux.

  This install script is maintained by the XIVLauncher dev team. Please contact us in our discord server if you'd like an edit. https://discord.gg/3NMcUV5

notes: >-
  Open a free Final Fantasy XIV Online account here: https://freetrial.finalfantasyxiv.com

  This install script is maintained by the XIVLauncher dev team. Please contact us in our discord server if you'd like an edit. https://discord.gg/3NMcUV5

  This release uses Wine 7.1 and will install the current release of XIVLauncher, which may auto-update to a later release. Dalamud will be downloaded, installed, and updated via XIVLauncher if enabled.

  Please note that changing the version of Wine after installing with this script may break your wine prefix. If you're looking to update your current prefix with a newer version of wine, please backup your game install and config and make a new prefix instead. See our migration guide on https://goatcorp.github.io/faq/xl_troubleshooting for steps on how to move/copy FFXIV, character config, and your plugins/settings.

  If you have a Steam Service Account, you'll need to install Windows Steam into your prefix and ensure that it's started in order to login. You will need to have already linked your Steam Account to your Square Enix ID on a Windows machine prior. There is no workaround for Wine users at this time.

  We do not directly support ACT or other addon applications in this prefix and you are best off asking their support channels for assistance if you want to use both together.

  If you have a fsync-capable kernel, it's highly recommended to go into your Lutris settings for FFXIV and turn on fsync support. We've opted to keep this off by default as it's not included in older kernels and some popular distributions don't include the patches in their kernels. It is highly recommended to keep esync on at a minimum, as long as your kernel supports it.

  If you want to limit your FPS, please adjust the DXVK_FRAME_RATE environment variable instead of using FFXIV's built-in frame limiter. It will cause stuttering in game on Linux.
script:
  custom-name: Final Fantasy XIV Online - XIVLauncher
  files:
    - launchersetup: >-
        https://kamori.goats.dev/Proxy/Update/Release/Setup.exe
  game:
    arch: win64
    exe: >-
      drive_c/users/$USER/AppData/Local/XIVLauncher/XIVLauncher.exe
    prefix: $GAMEDIR
  installer:
    - task:
        arch: win64
        description: Creating Wine prefix
        install_gecko: false
        install_mono: false
        name: create_prefix
        prefix: $GAMEDIR
    - task:
        arch: win64
        key: background
        name: set_regedit
        path: HKEY_CURRENT_USER\Control Panel\Colors\
        prefix: $GAMEDIR
        type: REG_SZ
        value: 0 0 0
    - task:
        app: dotnet48 vcrun2019 win10
        description: Installing .NET 4.8, could take time 10-20 mn, please wait...
        name: winetricks
        prefix: $GAMEDIR
    - task:
        args: /s
        executable: launchersetup
        name: wineexec
    - task:
        arch: win64
        key: HideWineExports
        name: set_regedit
        path: HKEY_CURRENT_USER\Software\Wine
        prefix: $GAMEDIR
        type: REG_SZ
        value: "Y"
    - execute:
        command >-
          mkdir -p "$GAMEDIR"/drive_c/users/$USER/AppData/Roaming/XIVLauncher
    - execute:
        command: >-
          mkdir -p "$GAMEDIR"/drive_c/users/$USER/Documents/My\ Games/FINAL\ FANTASY\ XIV\ -\ A\ Realm\ Reborn
    - execute:
        command: >-
          echo -e "<FINAL FANTASY XIV Config File>\n\n<Cutscene Settings>\nCutsceneMovieOpening 1" > $GAMEDIR/drive_c/users/$USER/Documents/My\ Games/FINAL\ FANTASY\ XIV\ -\ A\ Realm\ Reborn/FFXIV.cfg
    - execute:
        command: >-
          echo -e "<FINAL FANTASY XIV Boot Config File>\n\n<Version>\nBrowser 1\nStartupCompleted 1" > $GAMEDIR/drive_c/users/$USER/Documents/My\ Games/FINAL\ FANTASY\ XIV\ -\ A\ Realm\ Reborn/FFXIV_BOOT.cfg
  system:
    env:
      DXVK_FRAME_RATE: 0
      XL_WINEONLINUX: true
      __GL_SHADER_DISK_CACHE: 1
      __GL_SHADER_DISK_CACHE_PATH: $GAMEDIR
    pulse_latency: true
  wine:
    esync: true
    version: lutris-7.1-x86_64
landrevj commented 2 years ago

Reinstalled and updated gshade and I've got everything working again, so thanks! When I did this initially the default wine version lutris gives you didn't seem to be working so I landed on the GE version, but everything seems to be fine now.

reiichi001 commented 2 years ago

When I did this initially the default wine version lutris gives you

Someone had broken the script we have Lutris publish and it was set to use lutris-wine-7.2-fshack despite the number of lines I had in the description and technical notes begging other users not to touch it without checking with us first on discord.

~10 hours ago, my request for a rollback was approved and published.

It's now locked to the last edit I made because lowering the bar was the only way to stop other users from breaking it.

0v7 commented 2 years ago
12:42:34.527 | INF [PLUGINR] Fetching repo: https://kamori.goats.dev/Plugin/PluginMaster
--------------------------------
12:42:34.528 | ERR [PLUGINR] PluginMaster failed: https://kamori.goats.dev/Plugin/PluginMaster
System.Net.Http.HttpRequestException: An attempt was made to access a socket in a way forbidden by its access permissions. (kamori.goats.dev:443)
--------------------------------
12:42:34.528 | ERR [PLUGINR] PluginMaster failed: https://kamori.goats.dev/Plugin/PluginMaster
 ---> System.Net.Sockets.SocketException (10013): An attempt was made to access a socket in a way forbidden by its access permissions.
   at System.Net.Sockets.Socket.AwaitableSocketAsyncEventArgs.ThrowException(SocketError error, CancellationToken cancellationToken)
System.Net.Http.HttpRequestException: An attempt was made to access a socket in a way forbidden by its access permissions. (kamori.goats.dev:443)
   at System.Net.Sockets.Socket.AwaitableSocketAsyncEventArgs.System.Threading.Tasks.Sources.IValueTaskSource.GetResult(Int16 token)
 ---> System.Net.Sockets.SocketException (10013): An attempt was made to access a socket in a way forbidden by its access permissions.
   at System.Net.Sockets.Socket.<ConnectAsync>g__WaitForConnectWithCancellation|283_0(AwaitableSocketAsyncEventArgs saea, ValueTask connectTask, CancellationToken cancellationToken)
   at System.Net.Sockets.Socket.AwaitableSocketAsyncEventArgs.ThrowException(SocketError error, CancellationToken cancellationToken)
   at System.Net.Sockets.Socket.AwaitableSocketAsyncEventArgs.ThrowException(SocketError error, CancellationToken cancellationToken)
   at System.Net.Http.HttpConnectionPool.DefaultConnectAsync(SocketsHttpConnectionContext context, CancellationToken cancellationToken)
   at System.Net.Sockets.Socket.AwaitableSocketAsyncEventArgs.System.Threading.Tasks.Sources.IValueTaskSource.GetResult(Int16 token)
   at System.Net.Http.ConnectHelper.ConnectAsync(Func`3 callback, DnsEndPoint endPoint, HttpRequestMessage requestMessage, CancellationToken cancellationToken)
   at System.Net.Sockets.Socket.<ConnectAsync>g__WaitForConnectWithCancellation|283_0(AwaitableSocketAsyncEventArgs saea, ValueTask connectTask, CancellationToken cancellationToken)
   at System.Net.Sockets.Socket.<ConnectAsync>g__WaitForConnectWithCancellation|283_0(AwaitableSocketAsyncEventArgs saea, ValueTask connectTask, CancellationToken cancellationToken)
   --- End of inner exception stack trace ---
   at System.Net.Http.HttpConnectionPool.DefaultConnectAsync(SocketsHttpConnectionContext context, CancellationToken cancellationToken)
   at System.Net.Http.ConnectHelper.ConnectAsync(Func`3 callback, DnsEndPoint endPoint, HttpRequestMessage requestMessage, CancellationToken cancellationToken)
   at System.Net.Http.ConnectHelper.ConnectAsync(Func`3 callback, DnsEndPoint endPoint, HttpRequestMessage requestMessage, CancellationToken cancellationToken)
   at System.Net.Http.HttpConnectionPool.ConnectAsync(HttpRequestMessage request, Boolean async, CancellationToken cancellationToken)
   --- End of inner exception stack trace ---
   at System.Net.Http.HttpConnectionPool.CreateHttp11ConnectionAsync(HttpRequestMessage request, Boolean async, CancellationToken cancellationToken)
   at System.Net.Http.HttpConnectionPool.GetHttpConnectionAsync(HttpRequestMessage request, Boolean async, CancellationToken cancellationToken)
   at System.Net.Http.HttpConnectionPool.ConnectAsync(HttpRequestMessage request, Boolean async, CancellationToken cancellationToken)
   at System.Net.Http.HttpConnectionPool.SendWithRetryAsync(HttpRequestMessage request, Boolean async, Boolean doRequestAuth, CancellationToken cancellationToken)
   at System.Net.Http.HttpConnectionPool.CreateHttp11ConnectionAsync(HttpRequestMessage request, Boolean async, CancellationToken cancellationToken)
   at System.Net.Http.HttpConnectionPool.CreateHttp11ConnectionAsync(HttpRequestMessage request, Boolean async, CancellationToken cancellationToken)
   at System.Net.Http.RedirectHandler.SendAsync(HttpRequestMessage request, Boolean async, CancellationToken cancellationToken)
   at System.Net.Http.HttpClient.SendAsyncCore(HttpRequestMessage request, HttpCompletionOption completionOption, Boolean async, Boolean emitTelemetryStartStop, CancellationToken cancellationToken)
   at System.Net.Http.HttpConnectionPool.SendWithRetryAsync(HttpRequestMessage request, Boolean async, Boolean doRequestAuth, CancellationToken cancellationToken)
   at System.Net.Http.HttpConnectionPool.SendWithRetryAsync(HttpRequestMessage request, Boolean async, Boolean doRequestAuth, CancellationToken cancellationToken)
   at System.Net.Http.RedirectHandler.SendAsync(HttpRequestMessage request, Boolean async, CancellationToken cancellationToken)
   at System.Net.Http.RedirectHandler.SendAsync(HttpRequestMessage request, Boolean async, CancellationToken cancellationToken)
   at System.Net.Http.HttpClient.SendAsyncCore(HttpRequestMessage request, HttpCompletionOption completionOption, Boolean async, Boolean emitTelemetryStartStop, CancellationToken cancellationToken)
   at System.Net.Http.HttpClient.SendAsyncCore(HttpRequestMessage request, HttpCompletionOption completionOption, Boolean async, Boolean emitTelemetryStartStop, CancellationToken cancellationToken)
   at Dalamud.Plugin.Internal.Types.PluginRepository.ReloadPluginMasterAsync() in C:\goatsoft\companysecrets\dalamud\Plugin\Internal\Types\PluginRepository.cs:line 88
   at Dalamud.Plugin.Internal.Types.PluginRepository.ReloadPluginMasterAsync() in C:\goatsoft\companysecrets\dalamud\Plugin\Internal\Types\PluginRepository.cs:line 88

OS: Windows 10

I'm able to access the specified address in Firefox (lists all available plugins), however, in-game it gives me this error. XIV Launcher is allowed through the firewall, and it's excluded from my VPN tunnel, so I'm unsure what may be causing this problem. (I'm unsure if I should've opened a new issue for this, since it's not the exact same error.)

goaaats commented 2 years ago

This is a problem with your antivirus. Please check the faq.

0v7 commented 2 years ago

It's not a problem with my antivirus. Nothing related to XIV Launcher is flagged as a virus, and excluding relevant folders from said antivirus also didn't change anything.

goaaats commented 2 years ago

We see this message multiple times a week in our Discord, and it's always the antivirus. They don't flag it visibly all the time and they lie to you.

If it's BitDefender, you have to manually exclude it from the "firewall" portion of the program. It will not tell you about it.

0v7 commented 2 years ago

Edit: Nevermind.

reiichi001 commented 2 years ago

Depending on the antivirus software, it can include its own firewall (bitdefender is a common offender, which is why it was mentioned).

If your AV doesn't roll its own, then it likely uses Windows Firewall, which can sometimes block XIVLauncher, but this is rare. Usually a reboot fixes things, in that case. Otherwise, you'd want to open your Windows Firewall settings and either remove old XIVLauncher entries and relaunch, or adjust existing entries as needed and then relaunch.

0v7 commented 2 years ago

Turning off my VPN fixed the issue, though, I'd rather not have to turn off my VPN just for Dalamud to fetch plugins. I thought excluding XIV Launcher's exe would be enough, but it apparently isn't.

NotNite commented 2 years ago

Try excluding ffxiv_dx11.exe.

0v7 commented 2 years ago

That didn't seem to work, unfortunately. I've excluded everything that I'm aware of from my VPN tunnel and for some reason it still won't fetch plugins. Thank you for the suggestion, though.

reiichi001 commented 2 years ago

The plugin list is through Dalamud.Injector.exe

0v7 commented 2 years ago

Excluding both Dalamud injectors also didn't do much. I've excluded those as well as every .exe involved with XIV Launcher & Dalamud, as well as the game's .exe's. Ultimately this may be an issue with my VPN, and not Dalamud. Thank you for taking the time to help me anyhow.

NotNite commented 2 years ago

Closing due to inactivity. If you're still having issues, please reopen this issue.