opencode
opencode copied to clipboard
TypeError: Cannot read properties of undefined (reading 'localeCompare') in sort operations
Description
Multiple sort operations in the web UI crash when sorting items with undefined/null values.
TypeError: Cannot read properties of undefined (reading 'localeCompare')
OpenCode version
v1.0.207+ (dev branch)
Steps to reproduce
Occurs intermittently when:
- Data is still loading (async operations in progress)
- Optional fields are missing (e.g., unnamed sessions, models without names)
- Race conditions during UI state updates
Example from packages/app/src/context/sync.tsx:79:
sessions.sort((a, b) => a.id.localeCompare(b.id))
// Crashes if a.id is undefined
Affected files
-
packages/app/src/context/sync.tsx(lines 79, 83, 94) -
packages/app/src/context/global-sync.tsx(lines 118, 344) -
packages/app/src/pages/session.tsx(line 85) -
packages/app/src/pages/layout.tsx(line 127) -
packages/app/src/components/dialog-select-mcp.tsx(lines 16, 44) -
packages/app/src/components/dialog-select-model.tsx(line 44) -
packages/app/src/components/dialog-manage-models.tsx(line 18) -
packages/app/src/components/dialog-select-model-unpaid.tsx(line 74) -
packages/app/src/components/dialog-select-provider.tsx(line 27) -
packages/ui/src/components/session-turn.tsx(line 109) -
packages/console/app/src/routes/workspace/[id]/model-section.tsx(line 51)
Proposed fix
Add null coalescing to all localeCompare calls:
sessions.sort((a, b) => (a.id ?? "").localeCompare(b.id ?? ""))
Screenshot and/or share link
No response
Operating System
Linux/macOS/Windows (affects all platforms)
Terminal
Web UI (browser-based)