Skip to content

fix(channels): safely parse non-string user message content - #43

Open
arpan7sarkar wants to merge 1 commit into
CopilotKit:mainfrom
arpan7sarkar:fix/safe-user-message-content-parsing
Open

fix(channels): safely parse non-string user message content#43
arpan7sarkar wants to merge 1 commit into
CopilotKit:mainfrom
arpan7sarkar:fix/safe-user-message-content-parsing

Conversation

@arpan7sarkar

@arpan7sarkar arpan7sarkar commented Aug 20, 2026

Copy link
Copy Markdown

Problem

In toVisibleChatItems (app/src/components/channels/chat-messages.ts), non-string message.content was assumed to always be an array. If message.content was undefined, null, or an unexpected object format, calling .filter() threw an
unhandled TypeError that crashed the React chat transcript.

Solution

  • Added an Array.isArray(message.content) check before filtering array parts.
  • Added an isTextPart type guard to safely extract text from valid { type: "text", text: string } items and ignore null/undefined/malformed elements.
  • Added comprehensive unit tests in app/tests/chat-messages.test.ts.

Verification

  • bun test app/tests/chat-messages.test.ts (7/7 passed)
  • bun run typecheck (0 errors)
  • bunx biome check (0 errors)

closes #44

Guard user message content parsing with Array.isArray to prevent runtime TypeError exceptions when message content is undefined, null, or non-array objects.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Unsafe user message content parsing causes React transcript crashes

1 participant