diff --git a/.changeset/gorgeous-dancers-return.md b/.changeset/gorgeous-dancers-return.md new file mode 100644 index 0000000000..86659c1c12 --- /dev/null +++ b/.changeset/gorgeous-dancers-return.md @@ -0,0 +1,5 @@ +--- +"astro": patch +--- + +Respect error status when handling Actions with a progressive fallback. diff --git a/packages/astro/src/actions/runtime/middleware.ts b/packages/astro/src/actions/runtime/middleware.ts index fced367aec..ec7c625fd3 100644 --- a/packages/astro/src/actions/runtime/middleware.ts +++ b/packages/astro/src/actions/runtime/middleware.ts @@ -47,7 +47,15 @@ export const onRequest = defineMiddleware(async (context, next) => { }, }; Object.defineProperty(locals, '_actionsInternal', { writable: false, value: actionsInternal }); - return next(); + const response = await next(); + if (result.error) { + return new Response(response.body, { + status: result.error.status, + statusText: result.error.name, + headers: response.headers, + }) + } + return response; }); function nextWithLocalsStub(next: MiddlewareNext, locals: Locals) {