From 8f2a822f93abb886525bfdbdb475bc95469d9d29 Mon Sep 17 00:00:00 2001 From: Sleeps Date: Tue, 6 Oct 2026 17:58:31 +0100 Subject: [PATCH] Surface scene API failures in plugin controller --- .../Api/SceneSearchController.cs | 14 +++++++++++--- 1 file changed, 11 insertions(+), 3 deletions(-) diff --git a/jellyfin-plugin/Jellyfin.Plugin.SceneSearch/Api/SceneSearchController.cs b/jellyfin-plugin/Jellyfin.Plugin.SceneSearch/Api/SceneSearchController.cs index a39912f..3e9acab 100644 --- a/jellyfin-plugin/Jellyfin.Plugin.SceneSearch/Api/SceneSearchController.cs +++ b/jellyfin-plugin/Jellyfin.Plugin.SceneSearch/Api/SceneSearchController.cs @@ -22,7 +22,10 @@ public sealed class SceneSearchController : ControllerBase [ProducesResponseType(StatusCodes.Status200OK)] public async Task> Libraries() { - return Ok(await _client.GetLibrariesAsync(HttpContext.RequestAborted).ConfigureAwait(false)); + var result = await _client.GetLibrariesAsync(HttpContext.RequestAborted).ConfigureAwait(false); + return result is null + ? StatusCode(StatusCodes.Status503ServiceUnavailable, "Scene Search API unavailable.") + : Ok(result); } [HttpPost("Index")] @@ -35,13 +38,18 @@ public sealed class SceneSearchController : ControllerBase } var result = await _client.StartIndexAsync(request, HttpContext.RequestAborted).ConfigureAwait(false); - return Accepted(result); + return result is null + ? StatusCode(StatusCodes.Status503ServiceUnavailable, "Scene Search API unavailable.") + : Accepted(result); } [HttpGet("IndexStatus")] [ProducesResponseType(StatusCodes.Status200OK)] public async Task> IndexStatus() { - return Ok(await _client.GetIndexStatusAsync(HttpContext.RequestAborted).ConfigureAwait(false)); + var result = await _client.GetIndexStatusAsync(HttpContext.RequestAborted).ConfigureAwait(false); + return result is null + ? StatusCode(StatusCodes.Status503ServiceUnavailable, "Scene Search API unavailable.") + : Ok(result); } }