diff --git a/src/renderer/src/databases/upgrades.ts b/src/renderer/src/databases/upgrades.ts index b1d722d3b4..79a36419de 100644 --- a/src/renderer/src/databases/upgrades.ts +++ b/src/renderer/src/databases/upgrades.ts @@ -136,7 +136,7 @@ export async function upgradeToV7(tx: Transaction): Promise { content: mcpTool.response, error: mcpTool.status !== 'done' - ? { message: 'MCP Tool did not complete', originalStatus: mcpTool.status } + ? { message: 'MCP Tool did not complete', originalStatus: mcpTool.status, name: null, stack: null } : undefined, createdAt: oldMessage.createdAt, metadata: { rawMcpToolResponse: mcpTool } @@ -263,10 +263,18 @@ export async function upgradeToV7(tx: Transaction): Promise { // 10. Error Block (Status is ERROR) if (oldMessage.error && typeof oldMessage.error === 'object' && Object.keys(oldMessage.error).length > 0) { if (isEmpty(oldMessage.content)) { - const block = createErrorBlock(oldMessage.id, oldMessage.error, { - createdAt: oldMessage.createdAt, - status: MessageBlockStatus.ERROR // Error block status is ERROR - }) + const block = createErrorBlock( + oldMessage.id, + { + message: oldMessage.error?.message ?? null, + name: oldMessage.error?.name ?? null, + stack: oldMessage.error?.stack ?? null + }, + { + createdAt: oldMessage.createdAt, + status: MessageBlockStatus.ERROR // Error block status is ERROR + } + ) blocksToCreate.push(block) messageBlockIds.push(block.id) } diff --git a/src/renderer/src/services/messageStreaming/callbacks/toolCallbacks.ts b/src/renderer/src/services/messageStreaming/callbacks/toolCallbacks.ts index 612e496bf3..1a5f3df28e 100644 --- a/src/renderer/src/services/messageStreaming/callbacks/toolCallbacks.ts +++ b/src/renderer/src/services/messageStreaming/callbacks/toolCallbacks.ts @@ -97,7 +97,12 @@ export const createToolCallbacks = (deps: ToolCallbacksDependencies) => { } if (finalStatus === MessageBlockStatus.ERROR) { - changes.error = { message: `Tool execution failed/error`, details: toolResponse.response } + changes.error = { + message: `Tool execution failed/error`, + details: toolResponse.response, + name: null, + stack: null + } } blockManager.smartBlockUpdate(existingBlockId, changes, MessageBlockType.TOOL, true)