diff --git a/src/NzbDrone.Core/Notifications/Plex/Server/PlexServerProxy.cs b/src/NzbDrone.Core/Notifications/Plex/Server/PlexServerProxy.cs index 117dfab71..86f4a5f4d 100644 --- a/src/NzbDrone.Core/Notifications/Plex/Server/PlexServerProxy.cs +++ b/src/NzbDrone.Core/Notifications/Plex/Server/PlexServerProxy.cs @@ -195,7 +195,12 @@ namespace NzbDrone.Core.Notifications.Plex.Server } catch (WebException ex) { - throw new PlexException("Unable to connect to Plex Media Server", ex); + if (ex.Status == WebExceptionStatus.TrustFailure) + { + throw new PlexException("Unable to connect to Plex Media Server, certificate validation failed.", ex); + } + + throw new PlexException($"Unable to connect to Plex Media Server, {ex.Message}", ex); } return response.Content; diff --git a/src/NzbDrone.Core/Notifications/Plex/Server/PlexServerService.cs b/src/NzbDrone.Core/Notifications/Plex/Server/PlexServerService.cs index 0d3625a5c..3d6592a19 100644 --- a/src/NzbDrone.Core/Notifications/Plex/Server/PlexServerService.cs +++ b/src/NzbDrone.Core/Notifications/Plex/Server/PlexServerService.cs @@ -8,6 +8,7 @@ using NLog; using NzbDrone.Common.Cache; using NzbDrone.Common.Extensions; using NzbDrone.Core.Movies; +using NzbDrone.Core.Validation; namespace NzbDrone.Core.Notifications.Plex.Server { @@ -192,13 +193,21 @@ namespace NzbDrone.Core.Notifications.Plex.Server } catch (PlexAuthenticationException ex) { - _logger.Error(ex, "Unable to connect to Plex Server"); + _logger.Error(ex, "Unable to connect to Plex Media Server"); return new ValidationFailure("AuthToken", "Invalid authentication token"); } + catch (PlexException ex) + { + return new NzbDroneValidationFailure("Host", ex.Message); + } catch (Exception ex) { - _logger.Error(ex, "Unable to connect to Plex Server"); - return new ValidationFailure("Host", "Unable to connect to Plex Server"); + _logger.Error(ex, "Unable to connect to Plex Media Server"); + + return new NzbDroneValidationFailure("Host", "Unable to connect to Plex Media Server") + { + DetailedDescription = ex.Message + }; } return null;