Thursday, September 25, 2025
4 changes · 18.0
Enhancements to existing features
This change improves how Odoo reports errors that happen during automated web actions by including the full error trace when available. This helps support and development teams identify the real source of failures faster, reducing time spent investigating unclear browser error messages.
Original PR description
Because it only embeds the error message, and because it ultimately gets `console.error`-ed, an error during a `run()` function is currently extremely unhelpful e.g.
Cannot read properties of undefined (reading 'ownerDocument')
might be all you get. And despite what one might assume, browsers (or at least chrome) don't seem to chain stacktraces when using `{cause}`, so even printing stacktraces on `console.error` does not yield useful information, the stacktrace point to `performAction` instead of a useful location.
So use the `Error#stack` if it's available. In chrome that includes both the error message and the full stack, so a formatted error message is unnecessary. Fall back on a formatted error message if the error has no stack for some reason.Resolved issues and error corrections
Users can no longer attempt to send a WhatsApp message after removing the required template. This prevents an unexpected error and gives a clearer validation path, improving reliability when messaging contacts.
Original PR description
Currently, an error occurs when the user attempts to send a whatsapp message without selecting a template. **Steps to Reproduce:** 1. Configure a WhatsApp Business Account and synchronize the…
Currently, an error occurs when the user attempts to send a whatsapp message without selecting a template. **Steps to Reproduce:** 1. Configure a WhatsApp Business Account and synchronize the templates. 2. Open any contact and click the **WhatsApp** button next to the phone number. 3. Remove the template and click **Send Message**. **Error:** `ValueError - Expected singleton: whatsapp.template()` **Cause:** At [1], it attempts to fetch the formatted body and header from the template ID. Since no template is selected, it results in an error. **Fix:** This commit makes the field `wa_template_id` required, preventing users from sending a whatsapp message without a template. In stable versions, raise a validation error if a user attempts to send a message without selecting a template. [1] - https://github.com/odoo/enterprise/blob/fff9ad7999d4ff13adf899b2517e750a36c1261a/whatsapp/wizard/whatsapp_composer.py#L319 sentry-6854466874 Forward-Port-Of: odoo/enterprise#93898
This fixes a Sales module issue where automated product configurator checks could fail when sales order line columns were customized. The change makes the test flow more robust for businesses that adapt sales order screens to their needs.
Original PR description
To reproduce: 1. Manually modify the SO view `view_order_form` notebook SO lines list view to make visible any column before `product_id` For example:…
To reproduce:
1. Manually modify the SO view `view_order_form` notebook SO lines list view to make visible any column before `product_id` For example:
https://github.com/odoo/odoo/blob/18.0/addons/sale/views/sale_order_views.xml#L521 making the field `display_type` visible
2. Run the tests of `sale` module
=> `sale` module tests will fail on test `test_sale_combo_configurator_preconfigure_unconfigurable_ptals`
```
FAILED: [18/22] Tour sale_combo_configurator_preconfigure_unconfigurable_ptals → Step Verify that configurable ptals are now configured (trigger:
.sale-combo-configurator-dialog
.combo-item-grid
.product-card:has(.card-title:contains("Test product"))
:contains("Attribute B: B")).
Element (
.sale-combo-configurator-dialog
.combo-item-grid
.product-card:has(.card-title:contains("Test product"))
:contains("Attribute B: B")) has not been found.
TIMEOUT step failed to complete within 10000 ms.
```
see runbot build fail at:
https://runbot.odoo.com/runbot/build/89552334
The issue happen as - for some dark magic JS/XML reason - adding the field before product_id make fail the step to click the checkbox using the span.
Fix was suggested by PIPU to solve/workaround the issue
In practice, this issue was discovered accidentally with a customisation which was willing to add a custom field at the start of the list
opw-5068699This fix replaces a technical crash with a clear user-facing message when an Argentine invoice document number has an invalid format. It helps users understand and correct the issue during invoice reversal or processing instead of seeing a system traceback.
Original PR description
Description of the issue/feature this PR addresses: This pull request improves error handling in the `_l10n_ar_get_document_number_parts` method in `account_move.py`. The main change is to provide a…
Description of the issue/feature this PR addresses:
This pull request improves error handling in the `_l10n_ar_get_document_number_parts` method in `account_move.py`. The main change is to provide a user-friendly error message when the document number does not match the expected Argentine format.
Error handling improvement:
* Added a `try/except` block to catch `ValueError` when splitting the `document_number`, raising a `UserError` with a localized message if the format is incorrect.
Current behavior before PR:
If the user tries to reverse a document that does not match the argentinean format, a traceback an error such as the following is generated:
`File "/home/odoo/src/enterprise/l10n_ar_edi/models/account_move.py", line 588, in _get_related_invoice_datawskey[afip_ws]['number']: self._l10n_ar_get_document_number_parts(File "/home/odoo/src/repositories/ingadhoc-odoo-argentina/l10n_ar_ux/models/account_move.py", line 101, in _l10n_ar_get_document_number_partsreturn super()._l10n_ar_get_document_number_parts(document_number, document_type_code)File "/home/odoo/src/odoo/addons/l10n_ar/models/account_move.py", line 21, in _l10n_ar_get_document_number_partspos, invoice_number = document_number.split('-')ValueError: not enough values to unpack (expected 2, got 1)as`
Desired behavior after PR is merged:
An `UserError` is raised.
<img width="1553" height="419" alt="image" src="https://github.com/user-attachments/assets/b47dc205-6997-4117-a768-d6241d33b158" />
---
I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr