Ombi-app / Ombi

Want a Movie or TV Show on Plex/Emby/Jellyfin? Use Ombi!
http://ombi.io
GNU General Public License v2.0
3.72k stars 395 forks source link

Request failure not indicated in /ombi/requests-list page #4435

Closed laur89 closed 2 years ago

laur89 commented 2 years ago

Describe the bug Radarr request fails. Under /ombi/Settings/FailedRequests, the failed request is listed: image Yet in /ombi/requests-list, it's shown as image

To Reproduce Steps to reproduce the behavior:

  1. Add a title; request should fail
  2. Verify failure is listed under /failedrequests page
  3. Verify failure is not indicated under /requests-list page

Expected behavior The request entry in /requests-list page should explicitly show the request has failed, and maybe offer a single-click retry option.

Ombi Version (please complete the following information):

Additional context Note the Radarr request error in ombi logs is shown as follows:

StatusCode: InternalServerError, Reason: Internal Server Error, RequestUri: https://radarr.myserver.com/api/v3/movie
fail: Ombi.Core.Senders.MovieSender[0]
Error when sending movie to DVR app, added to the request queue
Newtonsoft.Json.JsonReaderException: Unexpected character encountered while parsing value: <. Path '', line 0, position 0.
at Newtonsoft.Json.JsonTextReader.ParseValue()
at Newtonsoft.Json.JsonReader.ReadForType(JsonContract contract, Boolean hasConverter)
at Newtonsoft.Json.Serialization.JsonSerializerInternalReader.Deserialize(JsonReader reader, Type objectType, Boolean checkAdditionalContent)
at Newtonsoft.Json.JsonSerializer.DeserializeInternal(JsonReader reader, Type objectType)
at Newtonsoft.Json.JsonConvert.DeserializeObject(String value, Type type, JsonSerializerSettings settings)
at Newtonsoft.Json.JsonConvert.DeserializeObject[T](String value, JsonSerializerSettings settings)
at Newtonsoft.Json.JsonConvert.DeserializeObject[T](String value)
at Ombi.Api.Radarr.RadarrV3Api.AddMovie(Int32 tmdbId, String title, Int32 year, Int32 qualityId, String rootPath, String apiKey, String baseUrl, Boolean searchNow, String minimumAvailability)
at Ombi.Core.Senders.MovieSender.SendToRadarr(MovieRequests model, RadarrSettings settings)
at Ombi.Core.Senders.MovieSender.Send(MovieRequests model)

And relevant excerpt from radarr logs:

[Error] Microsoft.AspNetCore.Server.Kestrel: Connection id "0HMDJLJRMH05S", Request id "0HMDJLJRMH05S:00000002": An unhandled exception was thrown by the application.

[v3.2.2.5080] Microsoft.AspNetCore.Server.Kestrel.Core.BadHttpRequestException: Reading the request body timed out due to data arriving too slowly. See MinRequestBodyDataRate.
at Microsoft.AspNetCore.Server.Kestrel.Core.KestrelBadHttpRequestException.Throw(RequestRejectionReason reason)
at Microsoft.AspNetCore.Server.Kestrel.Core.Internal.Http.Http1ContentLengthMessageBody.ReadAsyncInternal(CancellationToken cancellationToken)
at Microsoft.AspNetCore.Server.Kestrel.Core.Internal.Http.HttpRequestStream.ReadAsyncInternal(Memory`1 destination, CancellationToken cancellationToken)
at Microsoft.AspNetCore.Server.Kestrel.Core.Internal.Http.HttpRequestStream.Read(Byte[] buffer, Int32 offset, Int32 count)
at System.IO.Stream.CopyTo(Stream destination, Int32 bufferSize)
at Nancy.IO.RequestStream.MoveToWritableStream()
at Nancy.IO.RequestStream..ctor(Stream stream, Int64 expectedLength, Int64 thresholdLength, Boolean disableStreamSwitching)
at Nancy.Owin.NancyMiddleware.<>c__DisplayClass2_1.<<UseNancy>b__1>d.MoveNext()
--- End of stack trace from previous location ---
at Microsoft.AspNetCore.Owin.WebSocketAcceptAdapter.<>c__DisplayClass6_0.<<AdaptWebSockets>b__0>d.MoveNext()
--- End of stack trace from previous location ---
at Radarr.Host.Middleware.SignalRMiddleware.<Attach>b__7_0(HttpContext context, Func`1 next) in D:\a\1\s\src\NzbDrone.Host\WebHost\Middleware\SignalRMiddleware.cs:line 58
at Microsoft.AspNetCore.Server.Kestrel.Core.Internal.Http.HttpProtocol.ProcessRequests[TContext](IHttpApplication`1 application)
tidusjar commented 2 years ago

The reason why it's still shown in the list is this is the users view. They shouldn't need to know if the request has failed to send to the DVR application, they couldn't do anything about it anyway.

The failed request list, Ombi will keep re-trying the request. You can also retry the request by pressing the cog icon on the details page of that movie (top right).

The error itself is an interesting one, that error from radarr indicates there's a communication issue between Ombi and Radarr

laur89 commented 2 years ago

The failed request list, Ombi will keep re-trying the request. You can also retry the request by pressing the cog icon on the details page of that movie (top right).

All good stuff, that pretty much makes this a non-issue. Thanks!