diff --git a/src/utils/messages.ts b/src/utils/messages.ts index cc624abb2..067e0280d 100644 --- a/src/utils/messages.ts +++ b/src/utils/messages.ts @@ -753,6 +753,7 @@ export function normalizeMessages(messages: Message[]): NormalizedMessage[] { // and remains true for all subsequent messages in the normalization process. let isNewChain = false return messages.flatMap(message => { + if (!message) return []; switch (message.type) { case 'assistant': { const aMsg = message as AssistantMessage @@ -776,7 +777,7 @@ export function normalizeMessages(messages: Message[]): NormalizedMessage[] { isVirtual: message.isVirtual, requestId: message.requestId, uuid, - error: message.error, + error: message?.error, isApiErrorMessage: message.isApiErrorMessage, advisorModel: message.advisorModel, } as NormalizedAssistantMessage @@ -2376,6 +2377,7 @@ export function normalizeMessagesForAPI( }, ) .forEach(message => { + if (!message) return []; switch (message.type) { case 'system': { // local_command system messages need to be included as user messages diff --git a/src/utils/messages/mappers.ts b/src/utils/messages/mappers.ts index 8f2bff8b0..0290200fb 100644 --- a/src/utils/messages/mappers.ts +++ b/src/utils/messages/mappers.ts @@ -29,6 +29,7 @@ export function toInternalMessages( messages: readonly DeepImmutable[], ): Message[] { return messages.flatMap(message => { + if (!message) return []; switch (message.type) { case 'assistant': return [ @@ -127,6 +128,7 @@ export function fromSDKCompactMetadata( export function toSDKMessages(messages: Message[]): SDKMessage[] { return messages.flatMap((message): SDKMessage[] => { + if (!message) return []; switch (message.type) { case 'assistant': return [ @@ -138,7 +140,7 @@ export function toSDKMessages(messages: Message[]): SDKMessage[] { session_id: getSessionId(), parent_tool_use_id: null, uuid: message.uuid, - error: message.error, + error: message?.error, }, ] case 'user':