Skip to content

Commit 0753daf

Browse files
Merge pull request #1284 from wsolarq11/fix/messages-boundary-null-error
fix: prevent null reference reading 'error' in MessagesBoundary
2 parents 10327e0 + c094516 commit 0753daf

2 files changed

Lines changed: 6 additions & 2 deletions

File tree

src/utils/messages.ts

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -753,6 +753,7 @@ export function normalizeMessages(messages: Message[]): NormalizedMessage[] {
753753
// and remains true for all subsequent messages in the normalization process.
754754
let isNewChain = false
755755
return messages.flatMap(message => {
756+
if (!message) return []
756757
switch (message.type) {
757758
case 'assistant': {
758759
const aMsg = message as AssistantMessage
@@ -776,7 +777,7 @@ export function normalizeMessages(messages: Message[]): NormalizedMessage[] {
776777
isVirtual: message.isVirtual,
777778
requestId: message.requestId,
778779
uuid,
779-
error: message.error,
780+
error: message?.error,
780781
isApiErrorMessage: message.isApiErrorMessage,
781782
advisorModel: message.advisorModel,
782783
} as NormalizedAssistantMessage
@@ -2376,6 +2377,7 @@ export function normalizeMessagesForAPI(
23762377
},
23772378
)
23782379
.forEach(message => {
2380+
if (!message) return []
23792381
switch (message.type) {
23802382
case 'system': {
23812383
// local_command system messages need to be included as user messages

src/utils/messages/mappers.ts

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -29,6 +29,7 @@ export function toInternalMessages(
2929
messages: readonly DeepImmutable<SDKMessage>[],
3030
): Message[] {
3131
return messages.flatMap(message => {
32+
if (!message) return []
3233
switch (message.type) {
3334
case 'assistant':
3435
return [
@@ -127,6 +128,7 @@ export function fromSDKCompactMetadata(
127128

128129
export function toSDKMessages(messages: Message[]): SDKMessage[] {
129130
return messages.flatMap((message): SDKMessage[] => {
131+
if (!message) return []
130132
switch (message.type) {
131133
case 'assistant':
132134
return [
@@ -138,7 +140,7 @@ export function toSDKMessages(messages: Message[]): SDKMessage[] {
138140
session_id: getSessionId(),
139141
parent_tool_use_id: null,
140142
uuid: message.uuid,
141-
error: message.error,
143+
error: message?.error,
142144
},
143145
]
144146
case 'user':

0 commit comments

Comments
 (0)