5.65.10.20260615080911
- [Security] Security improvements (#24496)(#23753)(#23555)(#23491)(#23193)(#23146)(#23094)(#23063)(#23061)(#23032)(#23021)(#22983)(#22950)(#22707)(#22675)(#22661)(#22621)(#22595)(#22594)(#22593)(#22587)(#22317)(#22315)(#22314)(#22311)(#22309)(#22308)(#22303)(#22302)(#22301)(#22300)(#22299)(#22298)(#22292)(#22290)(#22287)
- [Feature] Update asterisk-la log analyzer to use in-line tenant ID (#23403)
- [Feature] Add MCP API for ticket fields (definitions, values read/write) (#23200)
- [Feature] Add OAuth 2.1 authentication to MCP server for claude.ai custom connector integration (#22828)
- [Feature] Add
get_ticket_notesMCP tool for reading notes on a ticket (#22627) - [Feature] Add
add_noteMCP tool for creating notes on tickets (#22612) - [Feature] Add MCP auth tokens for human agents (#22560)
- [Feature] AI ticket summary (#21515)
- [Feature] Internal API v4 endpoint for account usage stats (#20982)
- [Feature] Option to add photo for chatbot (#20217)
- [Improvement] Fix stuck un-endable chats (#19377): 3-PR legacy plan — recoverability, prevention, reaper (#24279)
- [Improvement] Keyboard shortcuts for Answer Assistant: open from Reply box and "Use in answer" (#24195)
- [Improvement] Improve
get_ticket_messagesMCP tool — include notes and add type filter (#24119) - [Improvement] Change width for the text area of the daily gamification badge (#24114)
- [Improvement] Improve UX around setting agent timezone on login (#24067)
- [Improvement] Apply browser timezone on first agent-panel login (#24049)
- [Improvement] Tighten authorization on Asterisk-only V3 call endpoints (move from call.write to call.process) (#23894)
- [Improvement] Upgrade Facebook Graph API version in SSO OAuth flow from v19.0 to v20.0+ (#23868)
- [Improvement] Get rid of the "load quoted text" endpoint by trimming legacy quoted-text on load (#23803)
- [Improvement] Document max PR size (800 LOC) and stacked PR workflow (#23673)
- [Improvement] Refactor Gpf_Tasks_Runner to PSR-4 / DDD (#23627)
- [Improvement] Refactor Gpf_Recurrence_* subsystem to PSR-4 domain enum in CronTaskRunner (#23624)
- [Improvement] Prefer CRAM-MD5 over DIGEST-MD5 in IMAP and POP3 SASL auth method priority (#23614)
- [Improvement] Add a Slack notification variable to show Assigned Agent's name (#23560)
- [Improvement] Style the Execution Details screen from AI work executions (#23540)
- [Improvement] Open ticket after clicking the ticket code in AI work executions (#23539)
- [Improvement] Add OPcache Prometheus metrics endpoint and harden Apache module configuration (#23489)
- [Improvement] Shopify plugin: update API version (#23459)
- [Improvement] asterisk-la: include tenant ID on per-call log lines (#23401)
- [Improvement] feat: Authorize ticket field value reads/writes in TicketField module API (#23293)
- [Improvement] Route rdkafka producer errors through the application logger instead of container stderr (#23265)
- [Improvement] Hide MCP Integration in agent edit under AiWork feature flag (#23262)
- [Improvement] Harden ChatWidgetGateway RPCs: replace RpcUnrestricted with RpcRestricted('ticket', 'visitor_own') (#23153)
- [Improvement] Rename options of change rules execution rule action (#23086)
- [Improvement] Adjust the text description of the
Default phone numbersetting (#22968) - [Improvement] Send reset password email when customer tries to register again with existing email (#22958)
- [Improvement] Internal chat window tabs should work similarly as ticket tabs (#22831)
- [Improvement] Include tenant subscription ID in GA4 tracking user_id field (#22766)
- [Improvement] Add missing index on statuschanged column in qu_la_conversations (#22698)
- [Improvement] Write a note - Display Required Field Indicator for Empty Notes (#22649)
- [Improvement] Agent login endpoint leaks account existence via timing side-channel (#22622)
- [Improvement] Add Secure Flag to
closedBubbleButtonsCookies for PCI DSS Compliance (#22584) - [Improvement] FlowHunt ChatBot: treat 402 Payment Required as permanent error to stop futile API calls (#22549)
- [Improvement] Invalid automation rule conditions are silently skipped instead of breaking the rule (#22495)
- [Improvement] Update Python version in Asterisk-LA (#22466)
- [Improvement] Display form field code instead of database field ID (#22353)
- [Improvement] Mass action Delete custom field values removes only one field when the same custom field is present multiple times in a ticket (#22223)
- [Improvement] Add drag and drop reordering for contact form fields (#22213)
- [Improvement] Colors of the News notification pop-up panel (#22179)
- [Improvement] Missing top margin of News notification pop-up panel (#22178)
- [Improvement] Disable Reply action button when Telegram bot is disabled (#21976)
- [Improvement] Add eye icon toggle to reveal password on Login form (#21818)
- [Improvement] Add show/hide password toggle to Set New Password screen (#21817)
- [Improvement] Introduce configurable refresh rates for Active call and Chat overview (#21742)
- [Improvement] Implement new display model for whatsapp message. (#21631)
- [Improvement] Replace checkbox to keep ticket state when transferring ticket with button (#21605)
- [Improvement] Remove timezone-offset from LA (#21384)
- [Improvement] Better design for Modal dialog notification (#21215)
- [Improvement] Dark blue theme - different background on the messages in WhatsApp tickets (#20903)
- [Improvement] Support rich text format (Markdown-to-HTML rendering) for chatbot messages (#20446)
- [Improvement] Add support for managed Let's Encrypt certificate for custom domain (#20342)
- [Improvement] Change the next action in expired WhatsApp tickets from 'Transfer' to 'Send a notification' (#20180)
- [Improvement] New API endpoint to retrieve the history of all users participating in ticket conversations (#19380)
- [Improvement] Not possible to search for contact widgets based on their IDs (#23581)
- [Fix] MissedChatHandler lost the ticket-INIT condition — missed chat on existing ticket can delete/reopen it (#24557)
- [Fix] MysqlAppliedTimeRulesRepository::markAsApplied() returns always-true execute() result — idempotency guard is a no-op under concurrency (#24530)
- [Fix] The panel loads indefinitely after making changes in the agent profile (#24512)
- [Fix] Error
One or more provided filter fields are not supportedfrom call to agents API (#24503) - [Fix] WhatsApp ticket history not loading in agent panel — scroll pagination broken when any message fails to render (#24450)
- [Fix] asterisk-la: call_ring timeout re-enters callStop(), duplicates stub channelId (409), drops the requested callback (#24384)
- [Fix] Slow Email Template Loading on Ticket Reply (#24329)
- [Fix] Contact form checkbox field renders raw serialized data as label when stored in legacy Gpf_Data_RecordSet format (#24320)
- [Fix] Facebook login for KnowledgeBase visitors completes but the visitor is not logged in (#24311)
- [Fix] AI provider rename does not show validation error for duplicate or unchanged name (#24289)
- [Fix] Rule with postpone action calculates wrong end date when ticket is already postponed (#24276)
- [Fix] Chat widget shows "not authorized" error toast for visitors using inline/mobile chat link on Instagram (#24271)
- [Fix] Facebook conversation import job crashes when batch callback returns a conversation with no "messages" edge (#24229)
- [Fix] GET /api/v3/tickets/history times out at scale — INNER JOIN to qu_la_conversations degenerates on cold buffer pool (corrects #24074) (#24213)
- [Fix] ERROR
NoteMessageCreateErrorfrom pre-existing AddNote rules with empty content (regression of #21167) (#24202) - [Fix] APIv3:
403 Forbiddenresponse when creating ticket via api (POST/tickets) where body containscustom_fields(existing ticket field definitions) (#24198) - [Fix] Warning: Attempt to read property "value" on null in KB preview CSS render (theme_css.tpl) (#24191)
- [Fix] Replying to ticket fails with "Something went wrong" when an expired draft occupies the primary key slot (#24190)
- [Fix] API v3 endpoints for agent_phone and extensions fail with "Class not found" due to lowercase
v3typo in x-handler descriptor (#24152) - [Fix] GitHub plugin: unhandled errors in webhook remove()/create() loops corrupt stored settings and leak orphaned webhooks (#24143)
- [Fix] Timezone selector renders empty when stored value is a legacy IANA alias (#24130)
- [Fix] search_tickets MCP tool: output status field returns raw single-character codes instead of human-readable values defined in input schema (#24112)
- [Fix] OAuth authorization flow broken in SSO-only mode (MCP connector) (#24105)
- [Fix] Remaining bugs with LiveAgent CRM plugin after update to 5.62 (#24091)
- [Fix] Email address is duplicated when it starts with a number followed by a hyphen (#24043)
- [Fix] Mailto link breaks when email address contains numbers separated by dots (#24038)
- [Fix] The quoted text is always included in email replies even when the
Include the last message and its quoted textoption is disabled (#24013) - [Fix] PluginTicketFieldCreator::createValue swallows exception, logs bare "Failed to add field." (15,805/24h) (#23936)
- [Fix] PluginsNoteImporter logs "Failed to import note due to missing content." at error level (657 hits/24h, single tenant) (#23933)
- [Fix] Backend omits avatarUrl from ticket message author JSON, default avatar shown (#23925)
- [Fix] MysqlItemReviewRepository::save() throws UnexpectedValueException when invalidating an already-invalid review (#23919)
- [Fix] Zendesk plugin: Undefined property stdClass::$page in Config::getProgressText() during mid-import status reads (#23908)
- [Fix] POST /api/v3/contacts returns 500 due to database deadlock when reassigning ticket participants during contact update (#23904)
- [Fix] PHP OOM (256MB) in HTMLPurifier during MailReply/createAnswer and loadReplyTemplate (#23900)
- [Fix] Lower log level of "Field definition with code already exists." from warning to debug in PluginTicketFieldCreator (#23892)
- [Fix] Missing bottom panel with buttons in WA ticket (#23886)
- [Fix] Cron sleep-mode gate broken since 2021: DEFAULT-pool tasks run during postponed-cron windows (#23864)
- [Fix] Sort by computed columns (CONCAT, IFNULL) returns 500 in Bans, Calls, TimeReports, Extensions API endpoints (#23863)
- [Fix] [Voice] Incoming calls fail with HTTP 403 — NotAuthorizedError thrown by FieldLoader during IVR context substitution (#23857)
- [Fix] Ticket management actions are hidden when the ticket's channel is no longer available (#23807)
- [Fix]
La_TimeRules_TimeRuleTask::getTimeColumnValue()crashes with fatal return-type error when conversation date column is NULL (#23806) - [Fix] Canned messages created with legacy data format not visible in Configuration page (#23797)
- [Fix]
DeleteRecordingstime rule floods errors for non-parseable recording URLs instead of skipping them (#23784) - [Fix] MysqlCustomRoleRepository::getAll fatals with "Illegal mix of collations" on LIKE (custom-roles grid search) (#23776)
- [Fix] Saved filters grid fatals with "Illegal mix of collations" on LIKE via legacy Gpf SelectIterator (/api/v3/filters) (#23775)
- [Fix] Bans grid fatals with "Illegal mix of collations" on LIKE via legacy Gpf SelectIterator (/api/v3/bans) (#23774)
- [Fix] MysqlLanguageRepository::getAll fatals with "Illegal mix of collations" on LIKE (languages grid search) (#23773)
- [Fix] ContactWidgetRepository::getContactWidgetsByCursor fatals with "Illegal mix of collations" on LIKE (contact-widgets grid search) (#23772)
- [Fix] MysqlOutboxReadProjection::getEmails fatals with "Illegal mix of collations" on LIKE (#23771)
- [Fix] MysqlPredefinedAnswerRepository::executePaginatedQuery fatals with "Illegal mix of collations" on LIKE (#23769)
- [Fix] MysqlAgentReader::findByUsername fatals with "Illegal mix of collations" during inbound mail processing (#23767)
- [Fix] Missing content of "Getting started" section (#23758)
- [Fix] UnexpectedValueException: Message content not found for answer — dangling DynamoDB pointer (#23726)
- [Fix] UnexpectedValueException in ZBatesonHeadersParser::trimHeaderName() drops forwarded mail for non-UTF-8 mbox envelope lines (#23713)
- [Fix] Memory leak on session expiry — tab grows to 8-15 GB due to unreleased MediaStreamTrack (#23699)
- [Fix] Use backend-provided author directly in Instant/Note/WhatsApp ticket items instead of UserCache (#23684)
- [Fix] Rule "transfer ticket" action fires on in-progress call ticket and drops call to queue (#23592)
- [Fix] Saving changes to the badge's details throws an error (#23590)
- [Fix] LiveAgent.addTicketField no longer prefills the field with field definition code (#23580)
- [Fix] GET /api/v3/agents/{id} returns 500 for bot/integration agents with NULL authid (#23552)
- [Fix] Zendesk import job: TypeError when custom field value is null in PluginTicketFieldCreator::addTicketFieldValue() (#23550)
- [Fix] Stack-overflow recursion in UserSignatureFormPanel.asWidget() (#23533)
- [Fix] String correction (#23531)
- [Fix] [BUG] Rules screen very slow after update to v5.63 — scroll and filtering affected (#23530)
- [Fix] La_Rpc_User::load denies visitors access to conversation participants' display data (#23522)
- [Fix] AI Work executions "Started" column always empty due to wrong method call in ExecutionsTableDefinition (#23508)
- [Fix] MCP protocol should be Streamable HTTP (#23503)
- [Fix] ForwardEmail action constructor accesses uninitialized typed property — "Unable to execute rule." on every non-default sender (#23501)
- [Fix] Rule condition 'Message Group Type' broken after TicketMessageEnvelope refactor — Note option lost, Ticket message option never matches (#23490)
- [Fix] Transfer note not committed and transfer event missing when a rule fires immediately after ticket transfer (#23465)
- [Fix] CSV ticket export crashes with "Column: roleid has invalid value" when ticket owner has no account record (#23451)
- [Fix] Incoming calls fail with "Undefined array key binding_uri" for legacy SIP trunks (#23435)
- [Fix] Archiving a ticket field definition fails with "too many rows are affected" when duplicate
qu_g_formfieldsrows exist (#23430) - [Fix] Mass action "Purge" fails when ticket is not in DELETED or SPAM state (#23428)
- [Fix] FlowHuntAnswerSuggestionGenerator crashes with unhandled exception on FlowHunt 402 Payment Required (#23417)
- [Fix] AgentsGrid::addFullTextSearch crashes with MySQL error 1267 when search value contains emoji (#23416)
- [Fix] Ticket split aborts when source ticket has a stale list-field value (#23387)
- [Fix] Error:
Unable to unassign ticket from deleted agentwhen deleted agent has terminated tickets (#23386) - [Fix] TooManyRows on UserSignature::getUserDepartmentSignature — duplicate (userid, departmentid) rows in qu_la_user_signatures (#23375)
- [Fix] Gpf_Rpc_Params::getString throws on non-string C/M parameters at chat/contact.php dispatcher (#23371)
- [Fix] La_Rpc_SessionHandler::getSessionInfo throws on language > 32 chars (chat/contact.php) (#23369)
- [Fix] GpfRpcRequestParser::detectResponseType throws on FormResponse > 1 char (chat/contact.php) (#23367)
- [Fix] Warning: Undefined array key "uploadWidget" in HttpFileContentCreator::fromMultipartFormData on chat upload (#23366)
- [Fix] Canned messages are not always inserted into the text (#23364)
- [Fix] Pre and code blocks in chatbot messages are not formatted in agent panel (#23363)
- [Fix] asterisk-la: uncaught KeyError on agentDevices after push notification failure (CRITICAL) (#23359)
- [Fix] Facebook reply over 2000 chars fails with misleading "authentication error" — message dropped silently (#23346)
- [Fix] asterisk-la: Unhandled 409 Conflict on voicemail bridge record (CRITICAL, breaks call thread) (#23340)
- [Fix] Warning: Undefined array key "profile" in Dialog360MessageCallback::getNameFromContact() (#23337)
- [Fix] Inverted BETWEEN bounds in DynamoDbTicketMessageRepository when cursor passes dateTimeRange.to (#23336)
- [Fix] Error - Failed to convert date time (#23321)
- [Fix] downloadTemplatesTranslations.php writes to wrong path - Crowdin mail-template sync silently no-op since July 2025 (#23318)
- [Fix] MysqlFieldDefinitionRowProvider fatals with "Illegal mix of collations" (#23314)
- [Fix] ContactFieldsRepository fatals with "Illegal mix of collations" (#23313)
- [Fix] Bug: GET /api/v3/agents/{id} returns 500 when agent has no browser phone configured (#23309)
- [Fix] Contacts 'Created' filter not working (except custom date) (#23298)
- [Fix] Orphaned chat message group on agent-offline → offline-form fallback (#23273)
- [Fix] KB portal crashes with
No privileges defined for role Rfor registered customers using remember-me token (#23270) - [Fix] Facebook ad-originated Messenger conversations never appear in LiveAgent (#23259)
- [Fix] Microsoft 365 IMAP: "User is authenticated but not connected" treated as permanent auth failure instead of transient error (#23248)
- [Fix]
Missing required field: messagecrash in Facebook Comment processor — incomplete fix from #22113 (#23232) - [Fix] fix: TicketsGrid::getFirstUniqueField crashes with TypeError when contact has null phones/emails (#23223)
- [Fix] Ticket cannot be opened when it contains a message authored by a deleted agent (#23189)
- [Fix] Rename MCP Tokens to MCP Access Tokens (#23187)
- [Fix] Emails not fetching — task postponed 24h with no auto-recovery and no UI indication (#23173)
- [Fix] Chat: duplicate La_Rpc_Chat::cancelConnect RPC triggers "Chat already ended" RejectCommand (#23170)
- [Fix] Create button in time rules (#23163)
- [Fix] Missing icons in agent profile dialog menu items (#23160)
- [Fix] LiveChat migration: agent import loop aborts on first error, leaving remaining agents unprocessed (#23159)
- [Fix] Voice TrunkRegistrationCheckerTask fails — trunk endpoint config missing "transport" key (#23135)
- [Fix] Ticket message body renders empty for Instant envelope with "fields" section (#23132)
- [Fix] GpfException: Unable to connect to LDAP service with given admin credentials (ldap_bind Invalid credentials) (#23127)
- [Fix] Intercom_Migrate_Contacts aborts with TypeError when a company has null name (#23126)
- [Fix] Useless space in front of rule names in notes added by a rule in active chat (#23125)
- [Fix] After a second transfer of the same call, the call is failing/hung up (#23121)
- [Fix] Ticket field definition: editing checkbox field with description >1024 chars silently fails with no user feedback (#23120)
- [Fix] Migration plugins send resolved email notifications to customers on imported closed tickets (#23119)
- [Fix] fix: DynamoDB running conversation not cleared on call finish causes infinite auto-close rule loop (#23111)
- [Fix] Dev-local FPM runs on 128M memory_limit — reinstall / DI rebuild hits OOM (#23078)
- [Fix] fix(chat): track.js throws "getRunningChatPreset is not a function" causing chat session to drop on page navigation (#23077)
- [Fix] UnhandledException in FlowHuntAnswerSuggestionGenerator due to stale FlowHunt session (#23074)
- [Fix] Improvement: Keep Getting Started screen accessible from top menu like open tickets (#23057)
- [Fix] fix: POST /api/v3/canned_messages returns HTTP 500 when keywords field is omitted (#23054)
- [Fix] ChatStarter::createCustomerIdFromTicketAuthor passes contactId instead of userId to Chat CustomerId (#23025)
- [Fix] La_Rpc_User::loadUsers() missing IDs array limit and user type validation (#22984)
- [Fix] Instagram comment processing crashes on missing text field (#22977)
- [Fix] API v3 GET /tickets returns HTTP 500 instead of 400 when _sortField is empty (#22957)
- [Fix] System notes created by rule during chat initiation are added at the end of the conversation instead of the beginning (#22938)
- [Fix] 360dialog template sync logs ERROR when customer's WhatsApp number is blocked due to unpaid provider invoice (#22936)
- [Fix] RepositoryException receives string SQLSTATE code instead of int, causing TypeError (#22931)
- [Fix] Editor stuck on loading when files over limit are inserted into tickets via Drag&Drop (#22926)
- [Fix] Agent reply fails with generic error when attachment temp file expires (#22920)
- [Fix] The color of the listboxes in the "Online scenario" and "Offline scenario" sections of the chat button (#22919)
- [Fix] Ticket merge crashes when participant has orphaned contact_unique_fieldid (#22913)
- [Fix] WooCommerce plugin logs errors from expected failure paths and silently hides when permissions change (#22906)
- [Fix] Pipedrive plugin crashes on array_unique with stdClass objects (#22900)
- [Fix] Non-numeric articleId in KB attachment route causes uncaught TypeError 500s (#22881)
- [Fix] APIv1: POST - Create new message in conversation "Failed to add note to ticket" when Ticket code or public URL code is used (#22862)
- [Fix] Missing "Copy" text on button in contact widget Integration section (#22855)
- [Fix] WooCommerce integration dumps full Cloudflare HTML into logs and UI error (#22847)
- [Fix] Contact form fields missing from quoted text when forwarding initial message (#22832)
- [Fix] Built-in email: disabling "Process unrecognized forwarded emails" also blocks direct emails (#22824)
- [Fix] LiveAgent tab can utilize 100% CPU in some cases and freeze for minutes (#22821)
- [Fix] 500 internal server error on the expired password reset link (#22771)
- [Fix] asterisk-la: CRITICAL crash 'NoneType' object has no attribute 'id' in CallThread.__registerEvent (#22769)
- [Fix] asterisk-la: bridge.removeChannel() raises unhandled 422 on channel-already-left race (#22767)
- [Fix] asterisk-la: sounds.py treats any stderr output as fatal even when exit code is 0 (BOM warning aborts IVR sound) (#22765)
- [Fix] Received instant message has wrong styles during rendering (#22750)
- [Fix] Condition ticket tags contain all of doesn't work in time rules (#22739)
- [Fix] GpfException: Row does not exist bubbles up from La_Rpc_User::load when user is missing (#22733)
- [Fix] Dialog360CallbackController emits PHP warnings for coexistence webhook events (#22730)
- [Fix] MobileApp setNotificationToken is RpcUnrestricted but requires agent identity — crashes on expired session (#22716)
- [Fix] Variables are not working in rule action "Add note" (#22709)
- [Fix] TypeError in La_VisitorUserDetails::parse() when userDetails is null (#22708)
- [Fix] Facebook comment processing fails when page lacks like_count permission — hardcoded field request breaks event import (#22706)
- [Fix] Rule condition deserialization fails on invalid ticket field JSON — "Invalid multi value JSON" / "Invalid postal address JSON" (#22700)
- [Fix] AnswerSlaHandler logs normal business scenario at ERROR level — customer sends multiple messages before agent answers (#22694)
- [Fix] Nicereply review sync fails when visitor contact has no IP address (#22681)
- [Fix] Prechat form ticket fields missing from first chat message when "Let visitor choose department" is enabled (#22664)
- [Fix] Cannot change ticket owner when current owner is an agent — "Contact id is not set" (#22658)
- [Fix] Note with
big_textcontent section is not rendered in ticket UI (#22651) - [Fix] WhatsApp 360dialog error 132012 "Parameter format does not match" not mapped to user-friendly message (#22648)
- [Fix] Missing separator in SetSlaLevel error message — SLA level ID concatenated with error text (#22645)
- [Fix] WhatsApp template sync rejects valid provider templates due to consecutive spaces validation (#22643)
- [Fix] Desktop notifications do not display chat message content - only "…" shown (#22633)
- [Fix] fix: AttachmentsDeserializer crashes on malformed legacy attachment data (#22631)
- [Fix] Ticket field definition's code not shown on edit (#22613)
- [Fix] Saving contact widget overwrites local field
codewith its numeric ID (#22609) - [Fix] DeleteKbEntryChilds task fails on category type entries — assertLegacyType rejects TYPE_CATEGORY (#22602)
- [Fix] QueueReportTask stuck in infinite retry loop with invalid department ID in params (#22601)
- [Fix] ApnsClient does not handle "Unregistered" device tokens — keeps sending to invalid devices (#22600)
- [Fix] UnexpectedValueException in MysqlEmailMessageProjection — message_groups row type mismatch (#22586)
- [Fix] WhatsApp template sync fails when provider returns duplicate language translations (#22585)
- [Fix] OOM in Agent Ranking CSV export: unbounded query loads all rows into memory (#22581)
- [Fix] OOM in Method.php: print_r serializes full WhatsApp message group on exception (#22579)
- [Fix] Application goes to Ticketbox-page after reload from Configuration-*- page (#22561)
- [Fix] PreChatFormFieldExtractor::getFileIds() crashes on malformed file field — ErrorException escapes catch (#22555)
- [Fix] OpenAI model listing crashes with unhandled exception when API key is deactivated (#22554)
- [Fix] RolePrivilegesPresenter calls bind() on every data refresh, causing "already binded" error (#22552)
- [Fix] WhatsApp Dialog360: unhandled ProviderRestClientError on payment-blocked account drops all media messages (#22546)
- [Fix] Twitter integration should deactivate account and notify admin on CreditsDepleted error (#22545)
- [Fix] Rule action "Add Field Value" fails with INVALID_VALUE for list field — value not in available options (#22543)
- [Fix] Broken images in knowledge base articles (#22541)
- [Fix] Error:
Invalid column name CONCAT(cinGET /api/v3/companies(#22535) - [Fix] Tag search crashes AgentEventBus when tag name contains regex metacharacters (#22519)
- [Fix] ScheduleDeviceDepartmentStatus job crashes with Gpf_DbEngine_NoRowException for deleted devices (#22471)
- [Fix] WhatsApp Twilio webhook throws UnexpectedDataFromProvider for unregistered numbers (#22467)
- [Fix] Rule action "Add Field Value" logs WARN and silently skips when referenced custom field has been deleted (#22465)
- [Fix] Google OAuth connector not disabled when Google account is deleted (#22454)
- [Fix] Rule action "Add Field Value" silently fails — StringValue max size exceeded when applying ticket field (#22443)
- [Fix] TrunkRegistrationCheckerTask fails hourly — Failed to deactivate expired trunk for 9 tenants (#22442)
- [Fix] La_Task_DeleteDrafts crashes daily — Invalid ticket id from Redis draft file links (#22441)
- [Fix] WhatsApp messages failing to store in DynamoDB — ConditionalCheckFailedException for all message types (#22439)
- [Fix] Error:
Row XXXX does not existwhen trying to start a chat from the chat button (#22407) - [Fix] Giphy integration fails to upload GIFs - error "Upload failed with error: No files found!" (#22405)
- [Fix] LDAP authentication and configuration doesn't work (#22394)
- [Fix] Error:
Syntax errorwhen filtering contacts by group via API (#22346) - [Fix] Wrong date and time in the Ticket history when a ticket is marked as spam (#22265)
- [Fix] Chart Y-axis ignores custom decimal separator from regional settings (#22248)
- [Fix] Remove unnecessary ERROR log when WhatsApp message has empty sender name (#22242)
- [Fix] Chat gets queued instead of ringing to available agent with free slots (#22198)
- [Fix] White Scheduler´s tab in the Dark blue theme (#22177)
- [Fix] Button's (Schedule new plan) bottom shadow out of view (#22175)
- [Fix] Ticket subject condition in SLA rules causes it not to work (#22172)
- [Fix] Missing top padding for buttons in
Schedule new planpanel (#22163) - [Fix] Error:
Unable to construct token id. Token id must be 10 characters longinGET /api/v3/api/info/v1(#22106) - [Fix] Blind transfer failed on Asterisk 22 (#22075)
- [Fix] Bugs with LiveAgent CRM plugin after update to 5.62 (#22015)
- [Fix] Do not refresh ticket fields section after auto-saving field value (#21638)
- [Fix] Json serialization failed: Malformed UTF-8 characters cause "Data error" when loading records with non-ASCII text (#21479)
- [Fix] Useless "Complete transfer" button in internal call (#21453)
- [Fix] Chatbot predefined message about not available agents is added after every chatbot reply (#21426)
- [Fix] Incoming call widget freezes in "Opening call" after clicking on "Answer" (#21249)
- [Fix] Shopify integration no longer works for new customers (#20925)
- [Fix] Github plugin is not reopening tickets (#20686)
- [Fix] Offline notification does not work on some systems (#20488)
- [Fix] Chatbot hangs on infinite typing loop when connected flow encounters an error (#20447)
- [Fix] Contact form with form field with missing definition cannot be submitted (#19730)
- [Fix] Unable to execute rule. Rule execution environment not set (#20395)
- [Fix] Fatal error "Invalid directory from request" (#19714)
- [Fix] Chat button doubled after editing another one in the list (#19416)
- [Fix] Records in the contact suggestion popup can get scattered (#23521)
- [Fix] Do not disconnect Nicereply integration when a rating cannot be submitted (#19575)
- [Fix] Error:
array_key_exists(): Argument #2 ($array) must be of type array, string givenin La_Model_Ivr->loadTransferOptions() (#20129) - [Fix] Unexpected Welcome message behavior in chat widget with a chatbot (#22825)
- [Fix] Changing the ticket owner in one specific ticket results in a change of owner in other tickets that have the same owner (#19777)
- [Fix] Error:
Status code has to be an integer between 100 and 599. A status code of 0 was givenin Nyholm\Psr7\Response->withStatus() (#19547) - [Fix] Not all chat messages sent by an agent reach customers (#19433)
- [Fix] Not possible to resize "transfer to" and "assign to" fields anymore (#19563)
- [Fix] Time rule executed when it shouldn't have after tag added (#19441)
- [Fix] Update search tooltip / hint to reflect that we use simple query for ES search (#21736)
- [Fix] Call tickets are not found by phone (#21853)
- [Performance] bug: Slow POST /api/v3/calls/{id}/_ring for tenant u274022 (avg 6–13s, max 24s) (#23777)
- [Performance] UserSlotReport stats query scans 533K rows every 18 seconds — suboptimal index on conversation_users_history (#22669)
- [Performance] PurgeDeletedConversations query takes 17.5s — missing index on (rstatus, datedeleted) (#22668)
- [Performance] Calls history SQL takes ~30s on large accounts due to non-sargable joins and sort (#22269)
- [Other] Refactorings and other fixes (#24614)(#24517)(#24490)(#24416)(#24413)(#24392)(#24371)(#24362)(#24327)(#24321)(#24260)(#24160)(#24116)(#24071)(#24064)(#24058)(#24017)(#23986)(#23970)(#23891)(#23872)(#23765)(#23705)(#23669)(#23516)(#23437)(#23291)(#23255)(#22997)(#22876)(#22874)(#22865)(#22770)(#22768)(#22684)(#22656)(#22620)(#22550)(#22532)(#22469)(#22461)(#22426)(#22389)(#22368)(#22271)(#22214)(#22208)(#21986)(#21982)(#21775)(#21662)(#21491)(#21439)(#21438)(#21334)(#21924)(#24262)(#24129)