diff --git a/src/Discord.Net/DiscordSocketClient.cs b/src/Discord.Net/DiscordSocketClient.cs index c08ce6f89..d2e3fa6cc 100644 --- a/src/Discord.Net/DiscordSocketClient.cs +++ b/src/Discord.Net/DiscordSocketClient.cs @@ -114,6 +114,11 @@ namespace Discord #endif _serializer = new JsonSerializer { ContractResolver = new DiscordContractResolver() }; + _serializer.Error += (s, e) => + { + _gatewayLogger.WarningAsync(e.ErrorContext.Error).GetAwaiter().GetResult(); + e.ErrorContext.Handled = true; + }; ApiClient.SentGatewayMessage += async opCode => await _gatewayLogger.DebugAsync($"Sent {(GatewayOpCode)opCode}").ConfigureAwait(false); ApiClient.ReceivedGatewayEvent += ProcessMessageAsync; diff --git a/src/Discord.Net/Entities/Users/GuildUser.cs b/src/Discord.Net/Entities/Users/GuildUser.cs index 0eea42a39..0ea00639d 100644 --- a/src/Discord.Net/Entities/Users/GuildUser.cs +++ b/src/Discord.Net/Entities/Users/GuildUser.cs @@ -62,7 +62,11 @@ namespace Discord var roles = ImmutableArray.CreateBuilder(value.Length + 1); roles.Add(Guild.EveryoneRole); for (int i = 0; i < value.Length; i++) - roles.Add(Guild.GetRole(value[i])); + { + var role = Guild.GetRole(value[i]); + if (role != null) + roles.Add(role); + } Roles = roles.ToImmutable(); GuildPermissions = new GuildPermissions(Permissions.ResolveGuild(this)); }