diff --git a/src/UniGetUI.Avalonia/Infrastructure/GitHubAuthService.cs b/src/UniGetUI.Avalonia/Infrastructure/GitHubAuthService.cs index ab5c20fb72..2b98acde18 100644 --- a/src/UniGetUI.Avalonia/Infrastructure/GitHubAuthService.cs +++ b/src/UniGetUI.Avalonia/Infrastructure/GitHubAuthService.cs @@ -60,7 +60,8 @@ public async Task SignInAsync() _loginBackend.OnCancelled += BackgroundApiOnCancelled; await _loginBackend.Start(); - CoreTools.Launch(oauthLoginUrl.ToString()); + // ToString() unescapes the query; macOS `open` then re-escapes every '%' and corrupts redirect_uri. + CoreTools.Launch(oauthLoginUrl.AbsoluteUri); DateTime timeoutAt = DateTime.UtcNow.Add(LoginTimeout); while (_codeFromApi is null && !_loginWasCancelled && DateTime.UtcNow < timeoutAt)