1
0
Fork 0
mirror of https://github.com/Lidarr/Lidarr.git synced 2026-03-03 00:26:58 -05:00

Socksv5 and Connection to Plex Media Server not working unless Certificate Validation is disabled #4186

Open
opened 2026-02-20 13:17:16 -05:00 by deekerman · 1 comment
Owner

Originally created by @Rycochet on GitHub (Aug 2, 2025).

Is there an existing issue for this?

  • I have searched the existing open and closed issues

Current Behavior

When using a socksv5 Proxy, and trying to add a connection to Plex Media Server (custom hostname and ssl port) it will fail to Test, disabling the proxy works properly, disabling Certificate Validation works properly.

The certificate is provided via Cloudflare, and works correctly in both Sonarr and Radarr with identical settings.

Note that https://github.com/Lidarr/Lidarr/issues/2520 is a pull from Sonarr in 2021, but may be related if something upstream has been updated.

Expected Behavior

It should connect identically when both the Proxy and Certificate Validation is enabled as when either (or both) are not.

Steps To Reproduce

Non-trivial setup, although I feel this is a symptom of a single error somewhere.

Docker compose, traefik for routing, Cloudflared for all incoming connections (even to plex itself) so all certificates are valid at all levels.

The compose setup is available here if needed.

Using plex.example.com:443 for the Plex address, and serjs/go-socks5-proxy as a socksv5 proxy (this is tested while allowing lidarr to make direct external connections, normally it isn't permitted in my server).

Environment

- OS: Ubuntu 24.04.2 LTS (using Docker Compose)
- Lidarr: 2.12.4.4658
- Docker Install: 28.3.2
- Using Reverse Proxy: yes
- Browser: Brave
- Database: Sqlite 3.49.2

What branch are you running?

Master

Trace Logs?

Browser network error:

{
  "error": true,
  "code": 400,
  "message": "Bad Request",
  "description": "The server did not understand the request"
}

Tracelog:

2025-08-02 18:33:24.0|Trace|HttpClient|Req: [GET] https://plex. example.com:443/library/sections?X-Plex-Client-Identifier=(removed)&X-Plex-Product=Lidarr&X-Plex-Platform=Windows&X-Plex-Platform-Version=7&X-Plex-Device-Name=Lidarr&X-Plex-Version=2.12.4.4658&X-Plex-Token=(removed)
2025-08-02 18:33:24.0|Trace|ConfigService|Using default config value for 'proxybypassfilter' defaultValue:''
2025-08-02 18:33:24.0|Trace|ConfigService|Using default config value for 'proxybypasslocaladdresses' defaultValue:'True'
2025-08-02 18:33:24.0|Trace|ConfigService|Using default config value for 'proxyusername' defaultValue:''
2025-08-02 18:33:24.0|Trace|ConfigService|Using default config value for 'proxypassword' defaultValue:''
2025-08-02 18:33:24.3|Trace|ConfigService|Using default config value for 'certificatevalidation' defaultValue:'Enabled'
2025-08-02 18:33:24.3|Error|X509CertificateValidationService|Certificate validation for plex. example.com failed. RemoteCertificateChainErrors
2025-08-02 18:33:24.3|Error|PlexServerService|Unable to connect to Plex Media Server

[v2.12.4.4658] System.Net.Http.HttpRequestException: The SSL connection could not be established, see inner exception.
 ---> System.Security.Authentication.AuthenticationException: The remote certificate was rejected by the provided RemoteCertificateValidationCallback.
   at System.Net.Security.SslStream.SendAuthResetSignal(ProtocolToken message, ExceptionDispatchInfo exception)
   at System.Net.Security.SslStream.CompleteHandshake(SslAuthenticationOptions sslAuthenticationOptions)
   at System.Net.Security.SslStream.ForceAuthenticationAsync[TIOAdapter](TIOAdapter adapter, Boolean receiveFirst, Byte[] reAuthenticationData, Boolean isApm)
   at System.Net.Http.ConnectHelper.EstablishSslConnectionAsync(SslClientAuthenticationOptions sslOptions, HttpRequestMessage request, Boolean async, Stream stream, CancellationToken cancellationToken)
   --- End of inner exception stack trace ---
   at System.Net.Http.ConnectHelper.EstablishSslConnectionAsync(SslClientAuthenticationOptions sslOptions, HttpRequestMessage request, Boolean async, Stream stream, CancellationToken cancellationToken)
   at System.Net.Http.HttpConnectionPool.ConnectAsync(HttpRequestMessage request, Boolean async, CancellationToken cancellationToken)
   at System.Net.Http.HttpConnectionPool.AddHttp2ConnectionAsync(HttpRequestMessage request)
   at System.Threading.Tasks.TaskCompletionSourceWithCancellation`1.WaitWithCancellationAsync(CancellationToken cancellationToken)
   at System.Net.Http.HttpConnectionPool.GetHttp2ConnectionAsync(HttpRequestMessage request, Boolean async, CancellationToken cancellationToken)
   at System.Net.Http.HttpConnectionPool.SendWithVersionDetectionAndRetryAsync(HttpRequestMessage request, Boolean async, Boolean doRequestAuth, CancellationToken cancellationToken)
   at System.Net.Http.AuthenticationHelper.SendWithAuthAsync(HttpRequestMessage request, Uri authUri, Boolean async, ICredentials credentials, Boolean preAuthenticate, Boolean isProxyAuth, Boolean doRequestAuth, HttpConnectionPool pool, CancellationToken cancellationToken)
   at System.Net.Http.DiagnosticsHandler.SendAsyncCore(HttpRequestMessage request, Boolean async, CancellationToken cancellationToken)
   at System.Net.Http.DecompressionHandler.SendAsync(HttpRequestMessage request, Boolean async, CancellationToken cancellationToken)
   at System.Net.Http.HttpClient.<SendAsync>g__Core|83_0(HttpRequestMessage request, HttpCompletionOption completionOption, CancellationTokenSource cts, Boolean disposeCts, CancellationTokenSource pendingRequestsCts, CancellationToken originalCancellationToken)
   at NzbDrone.Common.Http.Dispatchers.ManagedHttpDispatcher.GetResponseAsync(HttpRequest request, CookieContainer cookies) in ./Lidarr.Common/Http/Dispatchers/ManagedHttpDispatcher.cs:line 115
   at NzbDrone.Common.Http.HttpClient.ExecuteRequestAsync(HttpRequest request, CookieContainer cookieContainer) in ./Lidarr.Common/Http/HttpClient.cs:line 157
   at NzbDrone.Common.Http.HttpClient.ExecuteAsync(HttpRequest request) in ./Lidarr.Common/Http/HttpClient.cs:line 70
   at NzbDrone.Common.Http.HttpClient.Execute(HttpRequest request) in ./Lidarr.Common/Http/HttpClient.cs:line 128
   at NzbDrone.Core.Notifications.Plex.Server.PlexServerProxy.ProcessRequest(HttpRequestBuilder requestBuilder) in ./Lidarr.Core/Notifications/Plex/Server/PlexServerProxy.cs:line 127
   at NzbDrone.Core.Notifications.Plex.Server.PlexServerProxy.GetArtistSections(PlexServerSettings settings) in ./Lidarr.Core/Notifications/Plex/Server/PlexServerProxy.cs:line 37
   at NzbDrone.Core.Notifications.Plex.Server.PlexServerService.GetSections(PlexServerSettings settings) in ./Lidarr.Core/Notifications/Plex/Server/PlexServerService.cs:line 74
   at NzbDrone.Core.Notifications.Plex.Server.PlexServerService.Test(PlexServerSettings settings) in ./Lidarr.Core/Notifications/Plex/Server/PlexServerService.cs:line 153


2025-08-02 18:33:24.3|Trace|EventAggregator|Publishing ProviderStatusChangedEvent<INotification>
2025-08-02 18:33:24.3|Trace|LidarrErrorPipeline|Handling Exception
2025-08-02 18:33:24.3|Warn|LidarrErrorPipeline|FluentValidation.ValidationException: Validation failed: 
 -- Host: Unable to connect to Plex Media Server

[v2.12.4.4658] FluentValidation.ValidationException: Validation failed: 
 -- Host: Unable to connect to Plex Media Server
   at Lidarr.Api.V1.ProviderControllerBase`4.VerifyValidationResult(ValidationResult validationResult, Boolean includeWarnings) in ./Lidarr.Api.V1/ProviderControllerBase.cs:line 311
   at Lidarr.Api.V1.ProviderControllerBase`4.Test(TProviderDefinition definition, Boolean includeWarnings) in ./Lidarr.Api.V1/ProviderControllerBase.cs:line 302
   at Lidarr.Api.V1.ProviderControllerBase`4.Test(TProviderResource providerResource, Boolean forceTest) in ./Lidarr.Api.V1/ProviderControllerBase.cs:line 229
   at Microsoft.AspNetCore.Mvc.Infrastructure.ActionMethodExecutor.SyncObjectResultExecutor.Execute(IActionResultTypeMapper mapper, ObjectMethodExecutor executor, Object controller, Object[] arguments)
   at Microsoft.AspNetCore.Mvc.Infrastructure.ControllerActionInvoker.InvokeActionMethodAsync()
   at Microsoft.AspNetCore.Mvc.Infrastructure.ControllerActionInvoker.Next(State& next, Scope& scope, Object& state, Boolean& isCompleted)
   at Microsoft.AspNetCore.Mvc.Infrastructure.ControllerActionInvoker.InvokeNextActionFilterAsync()
--- End of stack trace from previous location ---
   at Microsoft.AspNetCore.Mvc.Infrastructure.ControllerActionInvoker.Rethrow(ActionExecutedContextSealed context)
   at Microsoft.AspNetCore.Mvc.Infrastructure.ControllerActionInvoker.Next(State& next, Scope& scope, Object& state, Boolean& isCompleted)
   at Microsoft.AspNetCore.Mvc.Infrastructure.ControllerActionInvoker.InvokeInnerFilterAsync()
--- End of stack trace from previous location ---
   at Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.<InvokeNextResourceFilter>g__Awaited|25_0(ResourceInvoker invoker, Task lastTask, State next, Scope scope, Object state, Boolean isCompleted)
   at Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.Rethrow(ResourceExecutedContextSealed context)
   at Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.Next(State& next, Scope& scope, Object& state, Boolean& isCompleted)
   at Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.InvokeFilterPipelineAsync()
--- End of stack trace from previous location ---
   at Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.<InvokeAsync>g__Awaited|17_0(ResourceInvoker invoker, Task task, IDisposable scope)
   at Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.<InvokeAsync>g__Awaited|17_0(ResourceInvoker invoker, Task task, IDisposable scope)
   at Microsoft.AspNetCore.Routing.EndpointMiddleware.<Invoke>g__AwaitRequestTask|6_0(Endpoint endpoint, Task requestTask, ILogger logger)
   at Lidarr.Http.Middleware.BufferingMiddleware.InvokeAsync(HttpContext context) in ./Lidarr.Http/Middleware/BufferingMiddleware.cs:line 28
   at Lidarr.Http.Middleware.IfModifiedMiddleware.InvokeAsync(HttpContext context) in ./Lidarr.Http/Middleware/IfModifiedMiddleware.cs:line 41
   at Lidarr.Http.Middleware.CacheHeaderMiddleware.InvokeAsync(HttpContext context) in ./Lidarr.Http/Middleware/CacheHeaderMiddleware.cs:line 33
   at Lidarr.Http.Middleware.StartingUpMiddleware.InvokeAsync(HttpContext context) in ./Lidarr.Http/Middleware/StartingUpMiddleware.cs:line 38
   at Lidarr.Http.Middleware.UrlBaseMiddleware.InvokeAsync(HttpContext context) in ./Lidarr.Http/Middleware/UrlBaseMiddleware.cs:line 29
   at Lidarr.Http.Middleware.VersionMiddleware.InvokeAsync(HttpContext context) in ./Lidarr.Http/Middleware/VersionMiddleware.cs:line 29
   at Microsoft.AspNetCore.ResponseCompression.ResponseCompressionMiddleware.InvokeCore(HttpContext context)
   at Microsoft.AspNetCore.Authorization.Policy.AuthorizationMiddlewareResultHandler.HandleAsync(RequestDelegate next, HttpContext context, AuthorizationPolicy policy, PolicyAuthorizationResult authorizeResult)
   at Microsoft.AspNetCore.Authorization.AuthorizationMiddleware.Invoke(HttpContext context)
   at Microsoft.AspNetCore.Authentication.AuthenticationMiddleware.Invoke(HttpContext context)
   at Microsoft.AspNetCore.Diagnostics.ExceptionHandlerMiddleware.<Invoke>g__Awaited|6_0(ExceptionHandlerMiddleware middleware, HttpContext context, Task task)


2025-08-02 18:33:24.4|Warn|LidarrErrorPipeline|Invalid request Validation failed: 
 -- Host: Unable to connect to Plex Media Server
2025-08-02 18:33:24.4|Trace|Http|Res: 132 [POST] /api/v1/notification/test?forceTest=true: 400.BadRequest (384 ms)

Trace Logs have been provided as applicable. Reports may be closed if the required logs are not provided.

  • I have read and followed the steps in the wiki link above and provided the required trace logs - the logs contain trace - that are relevant and show this issue.
Originally created by @Rycochet on GitHub (Aug 2, 2025). ### Is there an existing issue for this? - [x] I have searched the existing open and closed issues ### Current Behavior When using a socksv5 Proxy, and trying to add a connection to Plex Media Server (custom hostname and ssl port) it will fail to Test, disabling the proxy works properly, disabling Certificate Validation works properly. The certificate is provided via Cloudflare, and works correctly in both Sonarr and Radarr with identical settings. Note that https://github.com/Lidarr/Lidarr/issues/2520 is a pull from Sonarr in 2021, but may be related if something upstream has been updated. ### Expected Behavior It should connect identically when both the Proxy and Certificate Validation is enabled as when either (or both) are not. ### Steps To Reproduce Non-trivial setup, although I feel this is a symptom of a single error somewhere. Docker compose, traefik for routing, Cloudflared for all incoming connections (even to plex itself) so all certificates are valid at all levels. The compose setup is available [here](https://github.com/Rycochet/media-server) if needed. Using `plex.example.com:443` for the Plex address, and [serjs/go-socks5-proxy](https://github.com/serjs/socks5-server) as a socksv5 proxy (this is tested while allowing lidarr to make direct external connections, normally it isn't permitted in my server). ### Environment ```markdown - OS: Ubuntu 24.04.2 LTS (using Docker Compose) - Lidarr: 2.12.4.4658 - Docker Install: 28.3.2 - Using Reverse Proxy: yes - Browser: Brave - Database: Sqlite 3.49.2 ``` ### What branch are you running? Master ### Trace Logs? Browser network error: ```json { "error": true, "code": 400, "message": "Bad Request", "description": "The server did not understand the request" } ``` Tracelog: ```log 2025-08-02 18:33:24.0|Trace|HttpClient|Req: [GET] https://plex. example.com:443/library/sections?X-Plex-Client-Identifier=(removed)&X-Plex-Product=Lidarr&X-Plex-Platform=Windows&X-Plex-Platform-Version=7&X-Plex-Device-Name=Lidarr&X-Plex-Version=2.12.4.4658&X-Plex-Token=(removed) 2025-08-02 18:33:24.0|Trace|ConfigService|Using default config value for 'proxybypassfilter' defaultValue:'' 2025-08-02 18:33:24.0|Trace|ConfigService|Using default config value for 'proxybypasslocaladdresses' defaultValue:'True' 2025-08-02 18:33:24.0|Trace|ConfigService|Using default config value for 'proxyusername' defaultValue:'' 2025-08-02 18:33:24.0|Trace|ConfigService|Using default config value for 'proxypassword' defaultValue:'' 2025-08-02 18:33:24.3|Trace|ConfigService|Using default config value for 'certificatevalidation' defaultValue:'Enabled' 2025-08-02 18:33:24.3|Error|X509CertificateValidationService|Certificate validation for plex. example.com failed. RemoteCertificateChainErrors 2025-08-02 18:33:24.3|Error|PlexServerService|Unable to connect to Plex Media Server [v2.12.4.4658] System.Net.Http.HttpRequestException: The SSL connection could not be established, see inner exception. ---> System.Security.Authentication.AuthenticationException: The remote certificate was rejected by the provided RemoteCertificateValidationCallback. at System.Net.Security.SslStream.SendAuthResetSignal(ProtocolToken message, ExceptionDispatchInfo exception) at System.Net.Security.SslStream.CompleteHandshake(SslAuthenticationOptions sslAuthenticationOptions) at System.Net.Security.SslStream.ForceAuthenticationAsync[TIOAdapter](TIOAdapter adapter, Boolean receiveFirst, Byte[] reAuthenticationData, Boolean isApm) at System.Net.Http.ConnectHelper.EstablishSslConnectionAsync(SslClientAuthenticationOptions sslOptions, HttpRequestMessage request, Boolean async, Stream stream, CancellationToken cancellationToken) --- End of inner exception stack trace --- at System.Net.Http.ConnectHelper.EstablishSslConnectionAsync(SslClientAuthenticationOptions sslOptions, HttpRequestMessage request, Boolean async, Stream stream, CancellationToken cancellationToken) at System.Net.Http.HttpConnectionPool.ConnectAsync(HttpRequestMessage request, Boolean async, CancellationToken cancellationToken) at System.Net.Http.HttpConnectionPool.AddHttp2ConnectionAsync(HttpRequestMessage request) at System.Threading.Tasks.TaskCompletionSourceWithCancellation`1.WaitWithCancellationAsync(CancellationToken cancellationToken) at System.Net.Http.HttpConnectionPool.GetHttp2ConnectionAsync(HttpRequestMessage request, Boolean async, CancellationToken cancellationToken) at System.Net.Http.HttpConnectionPool.SendWithVersionDetectionAndRetryAsync(HttpRequestMessage request, Boolean async, Boolean doRequestAuth, CancellationToken cancellationToken) at System.Net.Http.AuthenticationHelper.SendWithAuthAsync(HttpRequestMessage request, Uri authUri, Boolean async, ICredentials credentials, Boolean preAuthenticate, Boolean isProxyAuth, Boolean doRequestAuth, HttpConnectionPool pool, CancellationToken cancellationToken) at System.Net.Http.DiagnosticsHandler.SendAsyncCore(HttpRequestMessage request, Boolean async, CancellationToken cancellationToken) at System.Net.Http.DecompressionHandler.SendAsync(HttpRequestMessage request, Boolean async, CancellationToken cancellationToken) at System.Net.Http.HttpClient.<SendAsync>g__Core|83_0(HttpRequestMessage request, HttpCompletionOption completionOption, CancellationTokenSource cts, Boolean disposeCts, CancellationTokenSource pendingRequestsCts, CancellationToken originalCancellationToken) at NzbDrone.Common.Http.Dispatchers.ManagedHttpDispatcher.GetResponseAsync(HttpRequest request, CookieContainer cookies) in ./Lidarr.Common/Http/Dispatchers/ManagedHttpDispatcher.cs:line 115 at NzbDrone.Common.Http.HttpClient.ExecuteRequestAsync(HttpRequest request, CookieContainer cookieContainer) in ./Lidarr.Common/Http/HttpClient.cs:line 157 at NzbDrone.Common.Http.HttpClient.ExecuteAsync(HttpRequest request) in ./Lidarr.Common/Http/HttpClient.cs:line 70 at NzbDrone.Common.Http.HttpClient.Execute(HttpRequest request) in ./Lidarr.Common/Http/HttpClient.cs:line 128 at NzbDrone.Core.Notifications.Plex.Server.PlexServerProxy.ProcessRequest(HttpRequestBuilder requestBuilder) in ./Lidarr.Core/Notifications/Plex/Server/PlexServerProxy.cs:line 127 at NzbDrone.Core.Notifications.Plex.Server.PlexServerProxy.GetArtistSections(PlexServerSettings settings) in ./Lidarr.Core/Notifications/Plex/Server/PlexServerProxy.cs:line 37 at NzbDrone.Core.Notifications.Plex.Server.PlexServerService.GetSections(PlexServerSettings settings) in ./Lidarr.Core/Notifications/Plex/Server/PlexServerService.cs:line 74 at NzbDrone.Core.Notifications.Plex.Server.PlexServerService.Test(PlexServerSettings settings) in ./Lidarr.Core/Notifications/Plex/Server/PlexServerService.cs:line 153 2025-08-02 18:33:24.3|Trace|EventAggregator|Publishing ProviderStatusChangedEvent<INotification> 2025-08-02 18:33:24.3|Trace|LidarrErrorPipeline|Handling Exception 2025-08-02 18:33:24.3|Warn|LidarrErrorPipeline|FluentValidation.ValidationException: Validation failed: -- Host: Unable to connect to Plex Media Server [v2.12.4.4658] FluentValidation.ValidationException: Validation failed: -- Host: Unable to connect to Plex Media Server at Lidarr.Api.V1.ProviderControllerBase`4.VerifyValidationResult(ValidationResult validationResult, Boolean includeWarnings) in ./Lidarr.Api.V1/ProviderControllerBase.cs:line 311 at Lidarr.Api.V1.ProviderControllerBase`4.Test(TProviderDefinition definition, Boolean includeWarnings) in ./Lidarr.Api.V1/ProviderControllerBase.cs:line 302 at Lidarr.Api.V1.ProviderControllerBase`4.Test(TProviderResource providerResource, Boolean forceTest) in ./Lidarr.Api.V1/ProviderControllerBase.cs:line 229 at Microsoft.AspNetCore.Mvc.Infrastructure.ActionMethodExecutor.SyncObjectResultExecutor.Execute(IActionResultTypeMapper mapper, ObjectMethodExecutor executor, Object controller, Object[] arguments) at Microsoft.AspNetCore.Mvc.Infrastructure.ControllerActionInvoker.InvokeActionMethodAsync() at Microsoft.AspNetCore.Mvc.Infrastructure.ControllerActionInvoker.Next(State& next, Scope& scope, Object& state, Boolean& isCompleted) at Microsoft.AspNetCore.Mvc.Infrastructure.ControllerActionInvoker.InvokeNextActionFilterAsync() --- End of stack trace from previous location --- at Microsoft.AspNetCore.Mvc.Infrastructure.ControllerActionInvoker.Rethrow(ActionExecutedContextSealed context) at Microsoft.AspNetCore.Mvc.Infrastructure.ControllerActionInvoker.Next(State& next, Scope& scope, Object& state, Boolean& isCompleted) at Microsoft.AspNetCore.Mvc.Infrastructure.ControllerActionInvoker.InvokeInnerFilterAsync() --- End of stack trace from previous location --- at Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.<InvokeNextResourceFilter>g__Awaited|25_0(ResourceInvoker invoker, Task lastTask, State next, Scope scope, Object state, Boolean isCompleted) at Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.Rethrow(ResourceExecutedContextSealed context) at Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.Next(State& next, Scope& scope, Object& state, Boolean& isCompleted) at Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.InvokeFilterPipelineAsync() --- End of stack trace from previous location --- at Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.<InvokeAsync>g__Awaited|17_0(ResourceInvoker invoker, Task task, IDisposable scope) at Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.<InvokeAsync>g__Awaited|17_0(ResourceInvoker invoker, Task task, IDisposable scope) at Microsoft.AspNetCore.Routing.EndpointMiddleware.<Invoke>g__AwaitRequestTask|6_0(Endpoint endpoint, Task requestTask, ILogger logger) at Lidarr.Http.Middleware.BufferingMiddleware.InvokeAsync(HttpContext context) in ./Lidarr.Http/Middleware/BufferingMiddleware.cs:line 28 at Lidarr.Http.Middleware.IfModifiedMiddleware.InvokeAsync(HttpContext context) in ./Lidarr.Http/Middleware/IfModifiedMiddleware.cs:line 41 at Lidarr.Http.Middleware.CacheHeaderMiddleware.InvokeAsync(HttpContext context) in ./Lidarr.Http/Middleware/CacheHeaderMiddleware.cs:line 33 at Lidarr.Http.Middleware.StartingUpMiddleware.InvokeAsync(HttpContext context) in ./Lidarr.Http/Middleware/StartingUpMiddleware.cs:line 38 at Lidarr.Http.Middleware.UrlBaseMiddleware.InvokeAsync(HttpContext context) in ./Lidarr.Http/Middleware/UrlBaseMiddleware.cs:line 29 at Lidarr.Http.Middleware.VersionMiddleware.InvokeAsync(HttpContext context) in ./Lidarr.Http/Middleware/VersionMiddleware.cs:line 29 at Microsoft.AspNetCore.ResponseCompression.ResponseCompressionMiddleware.InvokeCore(HttpContext context) at Microsoft.AspNetCore.Authorization.Policy.AuthorizationMiddlewareResultHandler.HandleAsync(RequestDelegate next, HttpContext context, AuthorizationPolicy policy, PolicyAuthorizationResult authorizeResult) at Microsoft.AspNetCore.Authorization.AuthorizationMiddleware.Invoke(HttpContext context) at Microsoft.AspNetCore.Authentication.AuthenticationMiddleware.Invoke(HttpContext context) at Microsoft.AspNetCore.Diagnostics.ExceptionHandlerMiddleware.<Invoke>g__Awaited|6_0(ExceptionHandlerMiddleware middleware, HttpContext context, Task task) 2025-08-02 18:33:24.4|Warn|LidarrErrorPipeline|Invalid request Validation failed: -- Host: Unable to connect to Plex Media Server 2025-08-02 18:33:24.4|Trace|Http|Res: 132 [POST] /api/v1/notification/test?forceTest=true: 400.BadRequest (384 ms) ``` ### Trace Logs have been provided as applicable. Reports may be closed if the required logs are not provided. - [x] I have read and followed the steps in the wiki link above and provided the required trace logs - the logs contain `trace` - that are relevant and show this issue.
Author
Owner

@bakerboy448 commented on GitHub (Aug 2, 2025):

PlexProxy logic between Sonarr and Lidarr is the same. So most likely this issue would lie around the proxy logic.

openssl s_client -showcerts -connect <url>:443 from

  • in lidarr container
  • in Radarr container
  • in lidarr container and running through the socks5 proxy, may take some google fu for how to execute that
@bakerboy448 commented on GitHub (Aug 2, 2025): PlexProxy logic between Sonarr and Lidarr is the same. So most likely this issue would lie around the proxy logic. `openssl s_client -showcerts -connect <url>:443` from - in lidarr container - in Radarr container - in lidarr container and running through the socks5 proxy, may take some google fu for how to execute that
Sign in to join this conversation.
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
starred/Lidarr-Lidarr#4186
No description provided.