Errored fallback with an async hole is dropped inside a pending outer Loading (SSR streaming)
Maintainer thường phản hồi trong vòng 1 ngày
Chưa có ai nhận issue này.
Đánh giá
- Độ khó
- 4/5
- Thời gian dự kiến
- 3-5 ngày
- Mức phù hợp với người mới
- 48/100
- Loại issue
- Lỗi
- Độ rõ ràng
- Khá rõ ràng
- Mức độ hoạt động
- Sôi nổi
- Công nghệ
- javascript, typescript
- Lĩnh vực
- frontend
Hướng nghiên cứu
Start with renderOutcome in packages/solid/src/server/signals.ts, then trace how the nested Errored region is handled while the outer Loading boundary is pending. Reproduce the reported timing with the three async createMemos and compare streamed and loaded hydration. Done when both hydrate with “outerfailed: no user 7 HINTtail” and no hydration warnings.
Do mô hình lập chỉ mục viết ra từ nội dung của issue.
Mô tả
What happens
An <Errored> whose fallback reads async data, sitting inside an outer <Loading> that is still pending, hydrates without its fallback when the inner <Loading> fails after the shell. The Errored region disappears.
<div>
<Loading fallback={<i>outer loading</i>}>
<b>{outer()}</b>
<Errored fallback={e => <p>failed: {e().message} {hint()}</p>}>
<Loading fallback={<i>loading</i>}>
<span>user:{user()}</span>
</Loading>
</Errored>
</Loading>
<span>tail</span>
</div>
Three async createMemos are created in the component body:
-
userrejects with "no user 7" at 5ms. -
hintresolves to "HINT" at 10ms. -
outerresolves to "outer" at 15ms. -
Expected:
outerfailed: no user 7 HINTtail -
Actual:
outertail, with one or two hydration warnings. Both streamed and loaded hydration show this onnext.
Server output
The shell has <i>outer loading</i> at pl-4. The stream rejects user, resolves hint, then sends <template id="4"><b _hk=4000>outer</b></template> and $df("4"). It sends nothing for the Errored region: no fallback markup and no inner placeholder.
Likely cause (unconfirmed)
The inner fragment is parked under the pending outer boundary. It fails while the Errored fallback's async hole is still pending, so the outcome render (renderOutcome in packages/solid/src/server/signals.ts) produces no markup. When the outer Loading later resolves, the Errored subtree is dropped instead of sending its fallback, or a placeholder the client can render into.
Found while reviewing #4303. That PR fixes the same shape without the outer Loading; this nested case fails the same way before and after it.
Generated by Claude Code
- Ngôn ngữ chính
- TypeScript
- Star
- 36.2k
- Fork
- 1.1k
- Merge trung bình
- 10 giờ 57 phút
- Pull request đã merge (30 ngày)
- 360
Chuẩn bị môi trường
- Không có Dockerfile hay tệp Docker Compose
- Có mẫu pull request
- Đọc hướng dẫn đóng góp
Bắt đầu từ đâu
- Đọc hết issue, rồi đọc hướng dẫn đóng góp của dự án.
- Bình luận trên issue rằng bạn sẽ nhận — tránh hai người làm cùng một việc.
- Fork repository và làm thay đổi trên một nhánh.
- Mở pull request có tham chiếu số hiệu của issue.
Issue khác của solidjs/solid
-
`lazy()`: remounting an already-loaded component renders empty (or the Suspense fallback) since 1.9.14Có thể đã có người làm @itisrmk đã nhận 10 ngày trước. Đang mở1.x
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 62/100
Maintainer thường phản hồi trong vòng 1 ngày
-
Độ khó 4/5 3-5 ngày Mức phù hợp với người mới 45/100
Maintainer thường phản hồi trong vòng 1 ngày
-
SSR: non-ASCII characters in static template text make the whole rendered page a two-byte stringĐang mở
Độ khó 4/5 3-5 ngày Mức phù hợp với người mới 42/100
solidjs/solid#4328 · 1 bình luận ·
Maintainer thường phản hồi trong vòng 1 ngày
-
enhancement
Độ khó 5/5 Hơn một tuần Mức phù hợp với người mới 35/100
Maintainer thường phản hồi trong vòng 1 ngày
-
`createRoot`'s dispose function keeps `fn` alive, so `<For>`/`<Index>` rows retain removed list itemsCó thể đã có người làm @boombang đã nhận 12 ngày trước. Đang mở1.x
Độ khó 4/5 1-2 ngày Mức phù hợp với người mới 45/100
Maintainer thường phản hồi trong vòng 1 ngày
Tất cả issue của solidjs/solid
Issue tương tự
-
Plugin: sheet music can't be scrolled by hand before playbackCó thể đã có người làm @snakajima đã nhận hôm nay. Đang mở
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 78/100
receptron/jinglescript#51 ·
Maintainer thường phản hồi trong vòng 1 ngày
-
enhancement
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 65/100
Maintainer thường phản hồi trong vòng 9 ngày
-
clawsweeper:needs-maintainer-review clawsweeper:needs-product-decision clawsweeper:no-new-fix-pr clawsweeper:source-repro impact:ux-friction issue-rating: 🦞 diamond lobster P3
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 78/100
openclaw/openclaw#186424 · 1 bình luận · 1 reaction ·
Maintainer thường phản hồi trong vòng 1 ngày
-
chore(worker): five module header comments describe the code from before later issues changed itĐang mởarea:dev U2-later
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 78/100
bentleypark/aiwatch#1824 ·
Maintainer thường phản hồi trong vòng 1 ngày
-
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 76/100
Pal-AI-Lab/Coopanion#469 ·
Maintainer thường phản hồi trong vòng 1 ngày