Skip to content

[BUG]: v1.15.13 web UI crashes with Settings context provider error #30478

@bernhardberger

Description

@bernhardberger

Description

After upgrading the OpenCode web server from 1.15.12 to 1.15.13, the web UI rendered the global error boundary instead of the normal project/session UI. Existing sessions were still present and the backend API was healthy, but the web UI made session history appear broken/inaccessible.

The error shown in the browser was:

Error: Settings context must be used within a context provider
    at use (https://<host>/assets/index-Celomlsk.js:2:41524)
    at rn (https://<host>/assets/home-BhuYZCc1.js:2:11619)
    at https://<host>/assets/index-Celomlsk.js:2:15011
    at tt (https://<host>/assets/index-Celomlsk.js:2:4067)
    at Object.fn (https://<host>/assets/index-Celomlsk.js:2:14981)
    at Yb (https://<host>/assets/index-Celomlsk.js:2:6835)
    at gl (https://<host>/assets/index-Celomlsk.js:2:6592)
    at yf (https://<host>/assets/index-Celomlsk.js:2:8033)
    at C7 (https://<host>/assets/index-Celomlsk.js:2:8914)
    at YT (https://<host>/assets/index-Celomlsk.js:2:8286)

The error overlay showed Version: 1.15.12, while the backend health endpoint reported 1.15.13.

Downgrading the same install back to 1.15.12 fixed the web UI immediately and session history was visible again.

What still worked on 1.15.13

Backend/API state looked healthy:

GET /global/health -> 200 {"healthy":true,"version":"1.15.13"}
GET /project -> 200
GET /session?projectID=<project-id> -> 200, returned existing sessions
opencode session list -> showed existing sessions
sqlite integrity_check on opencode.db -> ok

So this did not look like data loss or database corruption. It looked like a web frontend/runtime regression.

Request/network observations

When loading the broken web UI on 1.15.13, these requests returned HTTP 200 before the error boundary appeared:

GET /
GET /assets/index-Celomlsk.js
GET /assets/index-B0YimF4S.css
GET /global/config
GET /provider
GET /path
GET /project
GET /global/health
GET /assets/home-BhuYZCc1.js
GET /global/event

The visible DOM showed the project picker/recent-projects area behind/under the error boundary, but clicking the project could not reach a usable session list because the same error persisted.

Reproduction shape

I do not yet have a minimal clean-room reproduction, but the observed reproduction was:

  1. Run OpenCode web on Linux with existing local session history.
  2. Upgrade from 1.15.12 to 1.15.13 using the official installer.
  3. Start opencode web --port 8080 --hostname 0.0.0.0.
  4. Open the web UI in Chromium/Chrome.
  5. Observe the global error boundary with Settings context must be used within a context provider.
  6. Verify that /session?projectID=... and opencode session list still return existing sessions.
  7. Downgrade to 1.15.12 and restart the web server.
  8. The same web UI/session history works again.

Environment

  • OpenCode version with bug: 1.15.13
  • Known-good version after downgrade: 1.15.12
  • OS: Debian 13 / Linux x64
  • Browser: Chromium/Chrome
  • Mode: opencode web --port 8080 --hostname 0.0.0.0
  • Config shown by /global/config:
{"$schema":"https://opencode.ai/config.json","plugin":["@tarquinen/opencode-dcp@latest"]}

Runtime env included OPENCODE_EXPERIMENTAL_BACKGROUND_SUBAGENTS=true. OPENCODE_EXPERIMENTAL_WEBSOCKETS=true had previously been enabled, but disabling it and restarting did not fix this web UI crash. The downgrade to 1.15.12 did.

Expected behavior

The 1.15.13 web UI should render normally and show existing sessions when the backend/session API is healthy.

Actual behavior

The 1.15.13 web UI crashes into the global error boundary with Settings context must be used within a context provider, making existing session history appear unavailable even though the backend still returns it.

Workaround

Downgrade OpenCode back to 1.15.12.

Metadata

Metadata

Assignees

Labels

No labels
No labels

Type

No type
No fields configured for issues without a type.

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions