diff --git a/src/langbot/pkg/pipeline/monitoring_helper.py b/src/langbot/pkg/pipeline/monitoring_helper.py index 3fae71d9c..14ff187db 100644 --- a/src/langbot/pkg/pipeline/monitoring_helper.py +++ b/src/langbot/pkg/pipeline/monitoring_helper.py @@ -333,6 +333,7 @@ class MonitoringHelper: pipeline_id=pipeline_id, pipeline_name=pipeline_name, message_content=f'Error: {str(error)}', + role='assistant', session_id=session_id, status='error', level='error', diff --git a/web/src/app/home/bots/components/bot-session/BotSessionMonitor.tsx b/web/src/app/home/bots/components/bot-session/BotSessionMonitor.tsx index 86cf40de5..943f51b5b 100644 --- a/web/src/app/home/bots/components/bot-session/BotSessionMonitor.tsx +++ b/web/src/app/home/bots/components/bot-session/BotSessionMonitor.tsx @@ -341,7 +341,7 @@ const BotSessionMonitor = forwardRef< // Collect user message IDs for feedback matching const userMsgIds = new Set( - sorted.filter((m) => !m.role || m.role === 'user').map((m) => m.id), + sorted.filter(isUserMessage).map((m) => m.id), ); if (userMsgIds.size > 0) { @@ -458,11 +458,15 @@ const BotSessionMonitor = forwardRef< return [{ type: 'Plain', text: content } as Plain]; }; - const isUserMessage = (msg: SessionMessage): boolean => { + function isUserMessage(msg: SessionMessage): boolean { + // Older processing-error records inherited the default user role. + if (msg.status === 'error' && msg.message_content.startsWith('Error: ')) { + return false; + } if (msg.role === 'assistant') return false; if (msg.role === 'user') return true; return !msg.runner_name; - }; + } const renderMessageComponent = ( component: MessageChainComponent,