Skip to content

Commit f7bb020

Browse files
fix: streaming race condition
1 parent 795ee1b commit f7bb020

1 file changed

Lines changed: 5 additions & 3 deletions

File tree

packages/router-core/src/ssr/transformStreamWithRouter.ts

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -271,11 +271,13 @@ export function transformStreamWithRouter(
271271
const html = router.serverSsr?.takeBufferedHtml()
272272
if (!html) return
273273

274-
if (isAppRendering) {
275-
// Buffer for insertion at next valid position
274+
if (isAppRendering || leftover) {
275+
// Buffer when app is still rendering OR when there's leftover content
276+
// that hasn't been flushed yet. This prevents race conditions where
277+
// injected HTML appears before buffered app content
276278
pendingRouterHtmlParts.push(html)
277279
} else {
278-
// App is done rendering, write directly to output
280+
// App done rendering and no leftover - safe to write directly for better streaming
279281
safeEnqueue(html)
280282
}
281283
})

0 commit comments

Comments
 (0)