From dc60b5147eb90bb42fa93c0471602736b755582e Mon Sep 17 00:00:00 2001 From: Sebastian Krupinski Date: Mon, 31 Aug 2026 22:40:41 -0400 Subject: [PATCH] fix(preview): handle unavailable previews as no content Signed-off-by: Sebastian Krupinski --- lib/Controllers/DefaultController.php | 5 +---- src/services/transceive.ts | 3 +++ 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/lib/Controllers/DefaultController.php b/lib/Controllers/DefaultController.php index 7f05b66..a7bdc95 100644 --- a/lib/Controllers/DefaultController.php +++ b/lib/Controllers/DefaultController.php @@ -989,10 +989,7 @@ class DefaultController extends ControllerAbstract { isset($data['variant']) && is_string($data['variant']) ? $data['variant'] : 'inline', ); if ($preview === null) { - return new JsonResponse([ - 'status' => 'error', - 'error' => ['code' => 404, 'message' => 'Preview unavailable'], - ], Response::HTTP_NOT_FOUND); + return new Response('', Response::HTTP_NO_CONTENT); } return new StreamedResponse($preview->resource->stream(), Response::HTTP_OK, [ diff --git a/src/services/transceive.ts b/src/services/transceive.ts index 95d6bba..6224f78 100644 --- a/src/services/transceive.ts +++ b/src/services/transceive.ts @@ -199,6 +199,9 @@ export async function transceiveBlob(operation: string, data: TRequest await fetchWrapper.post(API_URL, request, { headers: { 'Accept': '*/*' }, onStream: async (response: Response) => { + if (response.status === 204) { + throw new Error(`[${operation}] Preview unavailable`); + } blob = await response.blob(); }, });