[Bug]: Corrupted conversation data breaks the entire conversation history list instead of handling individual broken conversations
Author: mokeyishCreated Sep 17, 2026Updated Sep 17, 2026
Labelsbugfrontendagent-canvaspriority:medium
Operating System
Linux
Installation Method
npm (npx @openhands/agent-canvas or npm install -g @openhands/agent-canvas)
Agent Canvas Version
1.18.0
Bug Description
When a single conversation's data becomes corrupted on disk, the entire conversation history list fails to load in the UI.
Because conversation IDs are represented as raw UUIDs without human-readable metadata, it is extremely difficult to identify which specific conversation file is corrupted. As a workaround, the user is forced to delete all local conversation data to make the feature functional again.
How it happened in my case:
- Switched the LLM model in an active conversation, which triggered an API Key error.
- Attempted to fork from a previous message to revert/continue without switching models.
- The conversation state entered a bad state, causing the global conversation list to throw an error and fail completely.
Steps to Reproduce
- Start a conversation, change the model to introduce an invalid configuration / API key error.
- Fork the conversation from an earlier message in the history.
- Refresh the page or return to the conversation history list.
- Observe that the entire conversation list fails to load/render.
Actual Behavior
- Switched the LLM model in an active conversation, which triggered an API Key error.
- Attempted to fork from a previous message to revert/continue without switching models.
- The conversation state entered a bad state, causing the global conversation list to throw an error and fail completely.
Expected Behavior
- If a single conversation encounters a data error or becomes corrupted, OpenHands should catch the error gracefully, mark/tag that specific conversation as
BrokenorCorruptedin the list, and still render the rest of the valid conversations. - Users should be able to delete or inspect the individual broken conversation directly from the UI without losing their entire conversation history.
Relevant Logs
Acceptance Criteria
No response
Screenshots
Additional Context
No response
Source: OpenHands/OpenHands