Skip to content

TUI crash: [Reconciler] Unknown component type: spinner #7415

Closed as not planned

Description

@harshav167

Summary

TUI crashes with "[Reconciler] Unknown component type: spinner" during prompt render.

Steps to reproduce

  1. Build OpenCode locally from branch feature/session-directory-filtering (HEAD 4bbb0df, based on dev bded900).
  2. Run the built binary (oc-custom / opencode).
  3. TUI crashes on startup.

Actual

Error: [Reconciler] Unknown component type: spinner
    at createElement (../../node_modules/.bun/@[email protected]+897ebc1644d3edd0/node_modules/@opentui/solid/index.js:521:17)
    at children (src/cli/cmd/tui/component/prompt/index.tsx:939:26)
    at <anonymous> (../../node_modules/.bun/[email protected]/node_modules/solid-js/dist/dev.js:1531:21)
    at runComputation (../../node_modules/.bun/[email protected]/node_modules/solid-js/dist/dev.js:742:22)
    at updateComputation (../../node_modules/.bun/[email protected]/node_modules/solid-js/dist/dev.js:724:3)
    at readSignal (../../node_modules/.bun/[email protected]/node_modules/solid-js/dist/dev.js:660:67)
    at <anonymous> (../../node_modules/.bun/@[email protected]+897ebc1644d3edd0/node_modules/@opentui/solid/index.js:148:62)
    at runComputation (../../node_modules/.bun/[email protected]/node_modules/solid-js/dist/dev.js:742:22)
    at updateComputation (../../node_modules/.bun/[email protected]/node_modules/solid-js/dist/dev.js:724:3)
    at createRenderEffect (../../node_modules/.bun/[email protected]/node_modules/solid-js/dist/dev.js:240:75)

Expected

TUI should render without crashing.

Environment

  • macOS 26.3 (25D5087f), arm64
  • Bun 1.3.5
  • package version: 1.1.8
  • @opentui/solid 0.1.70 in bun.lock (stack trace shows @opentui/[email protected] path)
  • @opentui/core 0.1.70
  • opentui-spinner 0.0.6
  • Branch: feature/session-directory-filtering
  • HEAD: 4bbb0df835a83d195314694f4fc1cb7ea0d271f0
  • Base dev: bded900

Activity

  1. added
    opentuiThis relates to changes in v1.0, now that opencode uses opentui
    on Jan 9, 2026
  2. github-actions commented on Jan 9, 2026

    @github-actions
    Contributor

    This issue might be a duplicate of existing issues. Please check:

    The root cause appears to be related to @opentui/solid component registration or version incompatibility. Note that your stack trace shows @opentui/[email protected] but bun.lock lists 0.1.70 - this version mismatch may be significant.

    Feel free to ignore if your specific case differs from these issues.

  3. kommander commented on Jan 9, 2026

    @kommander
    Contributor

    Are you linking opentui locally for dev?

  4. Zhanbingli commented on Feb 25, 2026

    @Zhanbingli

    I ran into this exact same error today after updating my local branch. It looks like an issue with Bun's dependency caching or a stale version of the SolidJS TUI reconciler getting stuck in node_modules.

    Solution:
    A complete clean install fixed the crash immediately. Here are the steps I took:

    1. Delete the existing modules: rm -rf node_modules
    2. Reinstall packages: bun install
    3. Rebuild the project: bun run build --single

    Hope this helps anyone who gets stuck on this!

  5. paulgear commented on Mar 18, 2026

    @paulgear

    ...
    Solution: A complete clean install fixed the crash immediately. Here are the steps I took:
    1. Delete the existing modules: rm -rf node_modules
    2. Reinstall packages: bun install
    3. Rebuild the project: bun run build --single

    Hope this helps anyone who gets stuck on this!

    This worked for me - thanks!

  6. removed
    opentuiThis relates to changes in v1.0, now that opencode uses opentui
    on May 3, 2026
  7. presire commented on May 9, 2026

    @presire

    Hitting this on the official prebuilt release binary (v1.14.41, Linux x64),
    which suggests this isn't just a local dev / Bun cache issue - the duplicate is shipped in the release.

    Root cause

    The release tarball includes two copies of @opentui/solid in node_modules:

    node_modules/@opentui/solid → v0.2.2 (used by opencode)
    node_modules/opentui-spinner/node_modules/@opentui/solid → v0.1.105 (used by opentui-spinner)

    opentui-spinner declares @opentui/solid: ^0.1.49 as a peer dependency, while the workspace catalog pins @opentui/solid to 0.2.2. Since
    0.2.2 doesn't satisfy ^0.1.49, Bun installs a separate copy under opentui-spinner/node_modules/.

    opentui-spinner/dist/solid.mjs calls extend({ spinner: ... }), but that extend resolves to the v0.1.105 instance and registers the
    component on its own componentCatalogue. The TUI itself uses v0.2.2, whose catalogue never receives the registration. When <spinner> is
    rendered, the v0.2.2 reconciler throws Unknown component type: spinner.

    I verified this by inspecting strings in the compiled binary — both extend({ spinner: ... }) calls are present, but they target different
    module instances. This also explains why rm -rf node_modules && bun install && bun run build --single sometimes works for people: depending
    on the resolver state, Bun occasionally hoists a single copy and the bug disappears, but it isn't deterministic.

    Verified fix

    Adding the following to the root package.json overrides, then bun install --force and rebuilding, eliminates the duplicate and fixes
    the crash:

    "overrides": {
    "@opentui/solid": "0.2.2",
    "@opentui/core": "0.2.2"
    }
    
    After this, node_modules/opentui-spinner/node_modules/@opentui/ no longer exists, and the rebuilt binary renders the spinner correctly. Confirmed
    locally on Linux x64 with v1.14.41.
    
    Suggested upstream fixes
    
    1. Add the override above to this repo so prebuilt releases never ship the duplicate, or
    2. Bump opentui-spinner to widen its peer dep range (e.g. ^0.1.49 || ^0.2.0) - the extend() API used by opentui-spinner/dist/solid.mjs is identical between v0.1.x and v0.2.2, so no code change in the spinner itself should be needed.
  8. ketut commented on Jun 19, 2026

    @ketut

    In my case it's working when i change opentui-spinner 0.0.7 to opentui-spinner 0.0.6 in packages.json

  9. github-actions commented on Aug 19, 2026

    @github-actions
    Contributor

    To stay organized issues are automatically closed after 60 days of no activity. If the issue is still relevant please open a new one.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

Labels

No labels
No labels

Type

No type

Projects

No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions