Skip to content

[Bug] Stale Solid Show read when switching sessions #985

@Astro-Han

Description

@Astro-Han

What happened?

PawWork prod 2026.5.29 can throw a renderer error while switching sessions:

Error: Stale read from <Show>.
    at castError (pawwork-renderer://renderer/assets/styles-EWJbS3g-.js:712:10)
    at handleError (pawwork-renderer://renderer/assets/styles-EWJbS3g-.js:725:17)
    at runComputation (pawwork-renderer://renderer/assets/styles-EWJbS3g-.js:482:12)
    at updateComputation (pawwork-renderer://renderer/assets/styles-EWJbS3g-.js:451:3)
    at runTop (pawwork-renderer://renderer/assets/styles-EWJbS3g-.js:546:7)
    at runQueue (pawwork-renderer://renderer/assets/styles-EWJbS3g-.js:618:42)
    at completeUpdates (pawwork-renderer://renderer/assets/styles-EWJbS3g-.js:574:5)
    at runUpdates (pawwork-renderer://renderer/assets/styles-EWJbS3g-.js:564:5)
    at batch (pawwork-renderer://renderer/assets/styles-EWJbS3g-.js:246:10)
    at flush (pawwork-renderer://renderer/assets/main-CFkzdD7-.js:56790:7)

Initial diagnosis points to PR #969 changing the session opening boundary so the composer remains mounted during session opening/switching. That allows stale Solid <Show> child accessors from the previous session to be read during a later global SDK event flush.

Which area seems affected?

App flow or product behavior

How much does this affect you?

Breaks an important workflow

Steps to reproduce

  1. Run PawWork prod 2026.5.29.
  2. Open a project with existing sessions.
  3. Switch from one loaded session to another session.
  4. Observe the renderer error dialog / problem report with Stale read from <Show>.

Observed problem report: /Users/yuhan/Library/Application Support/ai.pawwork.desktop/problem-reports/pawwork-problem-report-20260529-224001-351-pwr_mpr13kg7_jzqbuk.md.

What did you expect to happen?

Switching sessions should not keep stale reactive reads from the previous session alive. The opening skeleton can show while the target session hydrates, then the target session composer/timeline should mount only when the route is ready.

PawWork version

2026.5.29

OS version

macOS Darwin 25.5.0, arm64

Can you reproduce it again?

Sometimes

Diagnostics

Key facts from the problem report:

  • appVersion: 2026.5.29
  • channel: prod
  • packaged: true
  • route: /.../session/ses_191646ac9ffenC1nD14LbwVvmz
  • Last renderer diagnostic event before the report is session.identity.transition from ses_191646ac9ffenC1nD14LbwVvmz to ses_1924df726ffeP3bWBfblEgyNIx.
  • The production bundle stack frame main-CFkzdD7-.js:56790 maps to the global SDK SSE flush batching emitter.emit(...).
  • A minimal Solid browser reproduction confirms reading a non-keyed <Show> child accessor after when turns false throws the same Stale read from <Show>. error.

Likely regression window: v2026.5.28..v2026.5.29. The session switching boundary change was introduced by PR #969 (115676b062).

Metadata

Metadata

Assignees

No one assigned

    Labels

    P1High priorityappApplication behavior and product flowsbugSomething isn't workinguiDesign system and user interface

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions