diff --git a/.changeset/better-groups-swim.md b/.changeset/better-groups-swim.md
new file mode 100644
index 0000000000..0287bb142f
--- /dev/null
+++ b/.changeset/better-groups-swim.md
@@ -0,0 +1,5 @@
+---
+'svelte': patch
+---
+
+fix: throw for unset `createContext` get on the server
diff --git a/packages/svelte/src/internal/server/context.js b/packages/svelte/src/internal/server/context.js
index 7779da4c1d..6a7dc1f883 100644
--- a/packages/svelte/src/internal/server/context.js
+++ b/packages/svelte/src/internal/server/context.js
@@ -17,7 +17,17 @@ export function set_ssr_context(v) {
*/
export function createContext() {
const key = {};
- return [() => getContext(key), (context) => setContext(key, context)];
+
+ return [
+ () => {
+ if (!hasContext(key)) {
+ e.missing_context();
+ }
+
+ return getContext(key);
+ },
+ (context) => setContext(key, context)
+ ];
}
/**
diff --git a/packages/svelte/tests/server-side-rendering/samples/context-not-set-throws/_config.js b/packages/svelte/tests/server-side-rendering/samples/context-not-set-throws/_config.js
new file mode 100644
index 0000000000..575844faf6
--- /dev/null
+++ b/packages/svelte/tests/server-side-rendering/samples/context-not-set-throws/_config.js
@@ -0,0 +1,5 @@
+import { test } from '../../test';
+
+export default test({
+ error: 'missing_context'
+});
diff --git a/packages/svelte/tests/server-side-rendering/samples/context-not-set-throws/main.svelte b/packages/svelte/tests/server-side-rendering/samples/context-not-set-throws/main.svelte
new file mode 100644
index 0000000000..c52ad927c7
--- /dev/null
+++ b/packages/svelte/tests/server-side-rendering/samples/context-not-set-throws/main.svelte
@@ -0,0 +1,9 @@
+
+
+
\ No newline at end of file
diff --git a/packages/svelte/tests/server-side-rendering/test.ts b/packages/svelte/tests/server-side-rendering/test.ts
index 2bfc84c7a1..ca98fdd9aa 100644
--- a/packages/svelte/tests/server-side-rendering/test.ts
+++ b/packages/svelte/tests/server-side-rendering/test.ts
@@ -12,6 +12,7 @@ import { assert_html_equal_with_options } from '../html_equal.js';
import { suite_with_variants, type BaseTest } from '../suite.js';
import type { CompileOptions } from '#compiler';
import { seen } from '../../src/internal/server/dev.js';
+import type { SyncRenderOutput } from '#server';
interface SSRTest extends BaseTest {
mode?: ('sync' | 'async')[];
@@ -76,6 +77,9 @@ const { test, run } = suite_with_variants