Monday, October 20, 2025
17 changes · saas-18.2
Enhancements to existing features
This change makes Odoo's automated test browser shutdown more resilient when Chrome reports rare shutdown errors. It helps prevent stuck test builds and leftover processes, improving reliability of the build infrastructure without affecting end users.
Original PR description
In some instances, Chrome can apparently fail CDTP calls with "Execution context was destroyed". According to the internet this mostly happens because of navigation events, here it's not clear if…
In some instances, Chrome can apparently fail CDTP calls with "Execution context was destroyed". According to the internet this mostly happens because of navigation events, here it's not clear if this is in response to `stop`-ing the page, or a pre-existing navigation directive interfereing with the stop-ing of the browser. I tried reproducing locally under the assumption that the `Page.stopLoading` might be the cause but got nowhere[^1]. This issue seems extremely infrequent, and in most cases is but a minor annoyance, an error appears on the corresponding build, and that's it. However if the error occurs during `ChromeBrowser.stop` then the browser is not terminated, which on runbot prevents the docker image from shutting down properly, and leaves zombie builds. Therefore make `ChromeBrowser.stop` more resilient to errors in the initial section so that we do terminate the browser even if the "graceful CDTP shutdown" fails. While at it, add a fallback to kill the browser if it does not terminate gracefully. https://runbot.odoo.com/odoo/error/233442 [^1]: and the error only happening in 18.0 and later when `Page.stopLoading` was present long before that makes it likely the proximal cause is in the code being run, especially as all the errors sampled from the builds list are related to pos and the failure are immediately preceded by ongoing HTTP requests Forward-Port-Of: odoo/odoo#232117 Forward-Port-Of: odoo/odoo#232060
Delivery order origins now show only the related sales order information, without repeating the customer's reference. This avoids duplicate information on delivery slips and keeps tracking more reliable when customer references change later.
Original PR description
The origin field reliably tracks related orders, but including the customer reference caused issues: - The delivery slip displayed the customer reference twice. - Updating the customer reference in a sale order did not update the origin, making it unreliable for tracking. This change removes the customer reference from the origin, while keeping it structured for related orders. opw-5134111 Forward-Port-Of: odoo/odoo#232072
Peruvian customer records no longer require a ZIP code. This makes address entry more practical for Peru, where ZIP codes are not widely used, and reduces unnecessary validation friction.
Original PR description
As ZIP codes are not widely used in Peru, the requirement for a ZIP code to be provided for a Peruvian customer should not be present. task-5012593 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#223157
Resolved issues and error corrections
Payment QR codes now place the payment reference in the free communication field instead of the customer reference. This helps customers and businesses match payments more accurately and reduces reconciliation confusion.
Original PR description
The aim of this commit is replacing the usage of customer reference for the free communication in EPC SEPA QR Code for the payment reference. task-5122875 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#231401
Documentation and clarification updates
Tomasz Walter was added as a recognized member under Camptocamp's contributor license agreement. This keeps contributor authorization records up to date and supports compliant contributions to Odoo.
Original PR description
Please add me as a member of the Camptocamp organization. --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#230780
The Swedish localization demo data now uses a valid Swedish IBAN for the bank journal. This prevents demo companies from showing an incorrectly formatted bank account, improving accuracy for testing and demonstrations.
Original PR description
This commit replace the wrong `SE0826566594158439377422` IBAN by `SE5850000000014938684140` The actual IBAN of the sweden bank journal demo data is not following the official format, which is: - Country code: 'SE' -> **OK** - Valid checksum digit: '58' -> **OK** - Valid bank code: '5000' -> **KO**, '2656' is not a valid SE bank code - n zeros to fill the IBAN: '0000' -> **KO**, it's missing the zeros - Account number: '14938684140' -> **OK** Linked:https://github.com/odoo/enterprise/pull/95463 task-5107240 Forward-Port-Of: odoo/odoo#230104
The search field will no longer take focus automatically when users open it on tablets. This prevents the on-screen keyboard or cursor focus from appearing unexpectedly, making tablet use smoother while keeping the intended behavior on phones.
Original PR description
This commit fixes the usage of the 'mobile' param in the useAutofocus hook, which incorrectly focused the input on tablets, instead of only enabling it on mobile devices. A test has been added as well to cover this use case. task-5169698 Forward-Port-Of: odoo/odoo#232054
This fixes an issue where names containing non-breaking spaces could prevent signature images from being generated correctly. Users can now create typed or initials-based signatures reliably even when their name includes this kind of spacing.
Original PR description
Before this commit: Names containing a non-breaking space would break the generated svg file. This is because the inserted ' ' is not valid XML. This also broke the initials signature generation. After this commit: The getCleanedName method actually returns the cleaned name and the signature svg files is correct. Related ticket: opw-4927425 Forward-Port-Of: odoo/odoo#231517
Popup forms with status bars now keep their ribbon labels visually separate and easier to read. The update also prevents the status bar and form content from blending together while scrolling, improving clarity in modal workflows.
Original PR description
Previously, `position: static` was added on `.o_form_sheet` in modal forms to fix an issue where the ribbon looked ugly (not pinned to the top right) due to the absence of borders in modals. See commit: https://github.com/odoo/odoo/commit/1ac2ff5b7dd64ccfe1bfb9c3fb7bb8a758e887d7 However, when a statusbar is present, this rule caused the ribbon to merge into the statusbar, making its display worse. In addition, on scrolling in a modal, the statusbar and the form contents were getting merged. This commit refines : - the selector so that `position: static` is only applied when a modal form has a ribbon but no statusbar. When a statusbar exists, the ribbon remains visually separated from the statusbar. - the statusbar background-color logic so that inside modals it uses the proper `$o-view-background-color`, ensuring a clean separation even on scrolling. task-4873636 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr
This change removes a browser option that was causing connection errors with some older Chrome versions when Odoo Point of Sale communicates with IoT devices. It keeps POS hardware and customer display integrations working more reliably without changing day-to-day workflows.
Original PR description
This reverts commit 1a934ae which added the `"targetAddressSpace": local` option to IoT fetch requests. This is because of two reasons: 1. It caused errors on older versions of Chrome that implemented the obsoleted 'Private Network Access' standard. 2. It was not actually required in the first place, it is only needed in situations where a HTTP resource is accessed from HTTPS using a domain that resolves to a local IP. In Odoo we only ever do this for HTTPS -> HTTPS requests, where it works automatically. task-5157145 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#232172 Forward-Port-Of: odoo/odoo#232110
OdooBot canned responses included in default and demo data are now shared with the appropriate user group. This makes those predefined replies visible and usable by everyone who should have access, improving consistency in Discuss and mail workflows.
Original PR description
**Description of the issue this PR addresses:** Modify Canned Response master and demo data **Current behavior before PR:** Before this PR, canned responses created by OdooBot in master and demo data were not shared effectively, so they were not visible to anyone. **Desired behavior after PR is merged:** This PR ensures canned responses created by OdooBot are shared properly, by assigning a user group, ensuring that everyone can see them. task-[5069111](https://www.odoo.com/odoo/project/1519/tasks/5069111) --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#228006
The mail composer now handles failed file uploads without showing an error traceback. This prevents disruption when users attach a file that cannot be uploaded, allowing them to recover more smoothly.
Original PR description
Before this commit, when a file upload in the full composer would be fail, it would result in a traceback. This happens because we would try to access the attachment resulting from the upload, which is however undefined when the upload fails. This commit fixes the issue by guarding the access of said attachment. task-4778468 Forward-Port-Of: odoo/odoo#231219
App icons created in Studio are now automatically resized before being saved. This prevents unnecessarily large icon files from increasing database size, cache usage, and request payloads.
Original PR description
Before this commit, the IconCreator images were sent as is in their full size. Downstream it was problematic because apps' icons were bigger than necessary, bloating the different caches, the database, and the request. After this commit, icon are resized to a max of 64x64 pixels. Forward-Port-Of: odoo/enterprise#97050 Forward-Port-Of: odoo/enterprise#94480
This fix prevents spreadsheet field synchronization in Sales from crashing when users use undo or redo. It improves reliability for users working with synced sales data in spreadsheets and helps avoid interruptions while editing.
Original PR description
Fix an issue where field sync would crash when used with UNDO/REDO. Task: 4854879 Forward-Port-Of: odoo/enterprise#92883
This change removes an unnecessary browser option from IoT device requests. It avoids errors in older Chrome versions while keeping IoT and point-of-sale hardware connections working as before.
Original PR description
This reverts commit 6d09dc6 which added the `"targetAddressSpace": local` option to IoT fetch requests. This is because of two reasons: 1. It caused errors on older versions of Chrome that implemented the obsoleted 'Private Network Access' standard. 2. It was not actually required in the first place, it is only needed in situations where a HTTP resource is accessed from HTTPS using a domain that resolves to a local IP. In Odoo we only ever do this for HTTPS -> HTTPS requests, where it works automatically. task-5157145 Forward-Port-Of: odoo/enterprise#97543 Forward-Port-Of: odoo/enterprise#97500
The main menu search field was adjusted so browser extensions like Bitwarden no longer show an unnecessary popup over the menu. This keeps the menu cleaner and avoids distracting users while preserving the existing search autocomplete behavior.
Original PR description
Bitwarden pops up small form on top of the main menu for no reason. It is because of the hidden input created to trigger search when you type. Put `autocomplete="off"` to avoid these popups, as the search feature handle its own autocompletion. Note: this commit is a backport of odoo/odoo@403d7b70ab16b8b70ea46aa692883c7b4a6e83b7 Forward-Port-Of: odoo/enterprise#97506
This pull request records that contributor arch-fan has signed the required Contributor License Agreement. It supports legal compliance for accepting future contributions and does not change product functionality.
Original PR description
Description of the issue/feature this PR addresses: Current behavior before PR: Desired behavior after PR is merged: --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#232057