From 50b373c15181c0a5c1a2b7ef142c0f2a37633cd3 Mon Sep 17 00:00:00 2001 From: Sojan Jose Date: Fri, 26 Jun 2026 16:11:08 -0700 Subject: [PATCH] fix: preserve closed status on bot assignment --- app/services/conversations/assignment_service.rb | 2 +- spec/services/conversations/assignment_service_spec.rb | 8 ++++++++ 2 files changed, 9 insertions(+), 1 deletion(-) diff --git a/app/services/conversations/assignment_service.rb b/app/services/conversations/assignment_service.rb index aa2c944d7..1da81bd42 100644 --- a/app/services/conversations/assignment_service.rb +++ b/app/services/conversations/assignment_service.rb @@ -27,7 +27,7 @@ class Conversations::AssignmentService conversation.assignee = nil conversation.assignee_agent_bot = agent_bot - conversation.status = :pending + conversation.status = :pending if conversation.open? conversation.save! agent_bot end diff --git a/spec/services/conversations/assignment_service_spec.rb b/spec/services/conversations/assignment_service_spec.rb index 6377b8fa5..465f06946 100644 --- a/spec/services/conversations/assignment_service_spec.rb +++ b/spec/services/conversations/assignment_service_spec.rb @@ -65,6 +65,14 @@ describe Conversations::AssignmentService do expect(conversation.assignee_id).to be_nil expect(conversation.status).to eq('pending') end + + it 'preserves status when assigning an agent bot to a closed conversation' do + conversation.update!(assignee: agent, assignee_agent_bot: nil, status: :resolved) + + service.perform + + expect(conversation.reload.status).to eq('resolved') + end end end end