diff --git a/.changeset/pre.json b/.changeset/pre.json
index 1193869..3af00f2 100644
--- a/.changeset/pre.json
+++ b/.changeset/pre.json
@@ -9,6 +9,7 @@
"bump-solid-beta-22",
"bump-solid-beta-24",
"bump-solid-beta-25",
+ "bump-solid-beta-26",
"clean-lazy-entries",
"client-manifest-outdir",
"compiler-package-rename",
@@ -23,6 +24,7 @@
"native-babel-free-refresh",
"native-compiler-option",
"native-server-function-transform",
+ "sc-bootstrap-before-hydration-data",
"scoped-server-function-dce",
"server-components-option",
"server-functions-compiler",
diff --git a/CHANGELOG.md b/CHANGELOG.md
index 339acaa..f0ce782 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -1,5 +1,12 @@
# Changelog
+## 3.0.0-next.17
+
+### Patch Changes
+
+- 178b9dc: update to solid 2.0.0-beta.26 and @dom-expressions/compiler 0.50.0-next.31
+- 3b913f5: Inject the server-component bootstrap at the top of `
`, before the hydration data script. It was appended at ``, but the generated document renders `` inside ``, so the bootstrap always landed _after_ the payload it has to precede. The render plugin serializes a server component's placeholder as `self._$SC.r(id)`, so any document whose hydration payload carried a frame reference threw `Cannot read properties of undefined (reading 'r')` on boot — which aborted hydration, leaving the whole page inert: no client state, no interactivity, and no navigation, on an otherwise perfectly server-rendered document. The turnkey example's own payload happens not to carry such a reference, so its "no page errors" check never caught this; the document assertion now verifies the ordering rather than mere presence.
+
## 3.0.0-next.16
### Minor Changes
diff --git a/package.json b/package.json
index 62d4c7b..f139589 100644
--- a/package.json
+++ b/package.json
@@ -1,6 +1,6 @@
{
"name": "vite-plugin-solid",
- "version": "3.0.0-next.16",
+ "version": "3.0.0-next.17",
"description": "solid-js integration plugin for vite 6/7/8",
"type": "module",
"files": [