Skip to content

Commit b216e47

Browse files
authored
fix: assign correct status code to form submission error on the client (#14345)
fixes #14256
1 parent fb0f5dd commit b216e47

File tree

4 files changed

+9
-2
lines changed

4 files changed

+9
-2
lines changed

.changeset/large-parrots-grow.md

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
---
2+
'@sveltejs/kit': patch
3+
---
4+
5+
fix: assign correct status code to form submission error on the client

packages/kit/src/runtime/client/remote-functions/form.svelte.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -105,7 +105,7 @@ export function form(id) {
105105
void _goto(form_result.location, { invalidateAll }, 0);
106106
} else {
107107
result = undefined;
108-
throw new HttpError(500, form_result.error);
108+
throw new HttpError(form_result.status ?? 500, form_result.error);
109109
}
110110
} catch (e) {
111111
result = undefined;

packages/kit/test/apps/basics/src/routes/remote/form/form.remote.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,7 @@ export const task_one = form(async (form_data) => {
2020
task = /** @type {string} */ (form_data.get('task'));
2121

2222
if (task === 'error') {
23-
error(500, { message: 'Expected error' });
23+
error(400, { message: 'Expected error' });
2424
}
2525
if (task === 'redirect') {
2626
redirect(303, '/remote');

packages/kit/test/apps/basics/test/test.js

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1612,6 +1612,7 @@ test.describe('remote functions', () => {
16121612
await page.goto('/remote/form');
16131613
await page.fill('#input-task', 'error');
16141614
await page.click('#submit-btn-one');
1615+
expect(await page.textContent('h1')).toBe('400');
16151616
expect(await page.textContent('#message')).toBe(
16161617
'This is your custom error page saying: "Expected error"'
16171618
);
@@ -1635,6 +1636,7 @@ test.describe('remote functions', () => {
16351636
await page.goto('/remote/form');
16361637
await page.fill('#input-task', 'error');
16371638
await page.click('#submit-btn-two');
1639+
expect(await page.textContent('h1')).toBe('500');
16381640
expect(await page.textContent('#message')).toBe(
16391641
'This is your custom error page saying: "Unexpected error (500 Internal Error)"'
16401642
);

0 commit comments

Comments
 (0)