使用Radarr下载影片时遇异常问题求助
问题:Radarr添加影片时触发空值错误,无法启动QBitorrent下载
问题背景
在Manjaro系统中使用Radarr搭配QBitorrent和Jackett,点击「添加影片」后,QBitorrent未开始下载,触发致命错误。
错误日志
2023-09-01 14:43:56.6|Fatal|RadarrErrorPipeline|Request Failed. POST /api/v3/movie [v4.7.5.7809] System.ArgumentNullException: Value cannot be null. (Parameter 'text') at NzbDrone.Common.Extensions.PathExtensions.ContainsInvalidPathChars(String text) in ./Radarr.Common/Extensions/PathExtensions.cs:line 175 at NzbDrone.Common.Extensions.PathExtensions.IsPathValid(String path, PathValidationType validationType) in ./Radarr.Common/Extensions/PathExtensions.cs:line 165 at NzbDrone.Core.Validation.Paths.PathValidator.IsValid(PropertyValidatorContext context) in ./Radarr.Core/Validation/Paths/PathValidator.cs:line 29 at FluentValidation.Validators.PropertyValidator.Validate(PropertyValidatorContext context) in C:\Projects\FluentValidation\src\FluentValidation\Validators\PropertyValidator.cs:line 80 at FluentValidation.Internal.PropertyRule.InvokePropertyValidator(IValidationContext context, IPropertyValidator validator, String propertyName) in C:\Projects\FluentValidation\src\FluentValidation\Internal\PropertyRule.cs:line 519 at FluentValidation.Internal.PropertyRule.Validate(IValidationContext context)+MoveNext() in C:\Projects\FluentValidation\src\FluentValidation\Internal\PropertyRule.cs:line 351 at System.Linq.Enumerable.WhereEnumerableIterator`1.MoveNext() at FluentValidation.AbstractValidator`1.Validate(ValidationContext`1 context) in C:\Projects\FluentValidation\src\FluentValidation\AbstractValidator.cs:line 95 at FluentValidation.AbstractValidator`1.Validate(T instance) in C:\Projects\FluentValidation\src\FluentValidation\AbstractValidator.cs:line 62 at Radarr.Http.REST.RestController`1.ValidateResource(TResource resource, Boolean skipValidate, Boolean skipSharedValidate) in ./Radarr.Http/REST/RestController.cs:line 112 at Radarr.Http.REST.RestController`1.OnActionExecuting(ActionExecutingContext context) in ./Radarr.Http/REST/RestController.cs:line 79 at Microsoft.AspNetCore.Mvc.Controller.OnActionExecutionAsync(ActionExecutingContext context, ActionExecutionDelegate next) 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.g__Awaited|20_0(ResourceInvoker invoker, Task lastTask, State next, Scope scope, Object state, Boolean isCompleted) at Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.g__Awaited|17_0(ResourceInvoker invoker, Task task, IDisposable scope) at Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.g__Awaited|17_0(ResourceInvoker invoker, Task task, IDisposable scope) at Microsoft.AspNetCore.Routing.EndpointMiddleware.g__AwaitRequestTask|6_0(Endpoint endpoint, Task requestTask, ILogger logger) at Radarr.Http.Middleware.BufferingMiddleware.InvokeAsync(HttpContext context) in ./Radarr.Http/Middleware/BufferingMiddleware.cs:line 28 at Radarr.Http.Middleware.IfModifiedMiddleware.InvokeAsync(HttpContext context) in ./Radarr.Http/Middleware/IfModifiedMiddleware.cs:line 41 at Radarr.Http.Middleware.CacheHeaderMiddleware.InvokeAsync(HttpContext context) in ./Radarr.Http/Middleware/CacheHeaderMiddleware.cs:line 33 at Radarr.Http.Middleware.StartingUpMiddleware.InvokeAsync(HttpContext context) in ./Radarr.Http/Middleware/StartingUpMiddleware.cs:line 38 at Radarr.Http.Middleware.UrlBaseMiddleware.InvokeAsync(HttpContext context) in ./Radarr.Http/Middleware/UrlBaseMiddleware.cs:line 27 at Radarr.Http.Middleware.VersionMiddleware.InvokeAsync(HttpContext context) in ./Radarr.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.g__Awaited|6_0(ExceptionHandlerMiddleware middleware, HttpContext context, Task task)
排查与解决办法
- 核心问题定位:日志中
System.ArgumentNullException: Value cannot be null. (Parameter 'text')表明,Radarr在路径验证环节遇到空值,导致请求失败。 - 检查存储路径配置:
- 进入Radarr的「设置」-「媒体管理」,确认已添加有效的「根文件夹」,无空路径项
- 添加影片时,确认选择的存储路径存在且Radarr拥有读写权限,可通过
sudo chown -R radarr:radarr /path/to/your/media命令修正权限(根据实际用户组调整)
- 验证下载客户端配置:
- 进入「设置」-「下载客户端」,检查QBitorrent的「保存路径」「临时路径」是否为空,确保所有必填项已填写
- 点击「测试连接」确认Radarr能正常访问QBitorrent服务
- 重置Radarr服务:
- 停止服务:
sudo systemctl stop radarr - 清除路径缓存(删除
~/.config/Radarr/下的cache.db或重启服务后重新扫描路径) - 启动服务:
sudo systemctl start radarr
- 停止服务:
- 版本兼容性检查:当前Radarr版本为v4.7.5.7809,确认该版本与Manjaro系统、QBitorrent版本兼容,必要时更新至最新稳定版
内容的提问来源于stack exchange,提问作者Arnaud Malfoy
相关产品推荐
相关产品推荐

