Description: [19.0] Odoo by Adhoc
Commit: ingadhoc-account-payment:e7a9b7e3  
Subject: [IMP] l10n_latam_check_ux: Disable creation for existing checks in account payment view
Author: Rocío Vega
Committer: Rocío Vega
Commit: ingadhoc-multi-company:16b1a353  
Subject: [FIX]account_multicompany_ux: preserve payment term changing invoice company
Author: Matias Peralta
Committer: Matias Peralta
Commit: ingadhoc-account-financial-tools:25e47144  
Subject: Update translation files
Author: Weblate
Committer: Weblate
Commit: ingadhoc-odoo-saas-adhoc:d06a872c  
Subject: [FIX] saas_provider_upgrade: Convert expected_time to unix timestamp when inactivating database for upgrade
Author: nicomacr
Committer: nicomacr
Commit: ingadhoc-sale:f808d111  
Subject: [IMP] sale_order_type_automation: remove payment pro depends
Author: Martin Quinteros
Committer: Martin Quinteros
Commit: ingadhoc-enterprise-extensions:40502bfd  
Subject: [FIX] account_interbanking_statement: Correct date validation logic for last sync date
Author: Rocío Vega
Committer: Rocío Vega
Commit: ingadhoc-account-invoicing:6fc288bb  
Subject: [FIX] account_invoice_commission: adjust visibility conditions for commission pages
Author: Rocío Vega
Committer: Rocío Vega
Commit: ingadhoc-miscellaneous:978596db  
Subject: Update translation files
Author: Weblate
Committer: Weblate
Commit: ingadhoc-product:347b4c99  
Subject: [FIX] product_catalog_tree: improve order line quantity update logic
Author: Franco Leyes
Committer: Franco Leyes
Commit: ingadhoc-odoo-argentina:5d7d97f8  
Subject: [BOT] Bump version: l10n_ar_tax 19.0.1.4.0
Author: roboadhoc
Committer: roboadhoc
Commit: ingadhoc-website:dc6d4bb5  
Subject: [UPD] Copilot instructions
Author: adhoc-cicd-bot
Committer: adhoc-cicd-bot
Commit: ingadhoc-uruguay:9718424b  
Subject: [UPD] Copilot instructions
Author: adhoc-cicd-bot
Committer: adhoc-cicd-bot
Commit: ingadhoc-third-party-apps:77b668a5  
Subject: [UPD] Copilot instructions
Author: adhoc-cicd-bot
Committer: adhoc-cicd-bot
Commit: ingadhoc-stock:07fd2ab6  
Subject: [UPD] Copilot instructions
Author: adhoc-cicd-bot
Committer: adhoc-cicd-bot
Commit: ingadhoc-purchase:0f192151  
Subject: [UPD] Copilot instructions
Author: adhoc-cicd-bot
Committer: adhoc-cicd-bot
Commit: ingadhoc-project:85c91207  
Subject: [UPD] Copilot instructions
Author: adhoc-cicd-bot
Committer: adhoc-cicd-bot
Commit: ingadhoc-partner:d2ef144d  
Subject: [UPD] Copilot instructions
Author: adhoc-cicd-bot
Committer: adhoc-cicd-bot
Commit: ingadhoc-odoo-saas:512eeb6d  
Subject: [UPD] Copilot instructions
Author: adhoc-cicd-bot
Committer: adhoc-cicd-bot
Commit: ingadhoc-odoo-argentina-ee:6ff70b84  
Subject: [UPD] Copilot instructions
Author: adhoc-cicd-bot
Committer: adhoc-cicd-bot
Commit: ingadhoc-hr:8d0c73a3  
Subject: [UPD] Copilot instructions
Author: adhoc-cicd-bot
Committer: adhoc-cicd-bot
Commit: ingadhoc-argentina-sale:5a873718  
Subject: [UPD] Copilot instructions
Author: adhoc-cicd-bot
Committer: adhoc-cicd-bot
Commit: ingadhoc-demo:fc3c695c  
Subject: [UPD] Copilot instructions
Author: adhoc-cicd-bot
Committer: adhoc-cicd-bot
Commit: ingadhoc-aeroo_reports:f586b8a7  
Subject: [UPD] Copilot instructions
Author: adhoc-cicd-bot
Committer: adhoc-cicd-bot
Commit: plugberry-pagos360:f6b11225  
Subject: Translated using Weblate (Spanish)
Author: carla spiaggi
Committer: Weblate
Commit: plugberry-mercadopago:5d49315f  
Subject: [UPD] Initialize version 19.0
Author: adhoc-cicd-bot
Committer: adhoc-cicd-bot
Commit: adhoc-cicd-bmya-odoo-bmya:2ce18652  
Subject: [FIX] button
Author: Daniel Blanco
Committer: Daniel Blanco
Commit: adhoc-cicd-oca-account-financial-reporting:8057c115  
Subject: [BOT] post-merge updates
Author: OCA-git-bot
Committer: OCA-git-bot
Commit: adhoc-cicd-oca-hr:80337c68  
Subject: Translated using Weblate (Italian)
Author: mymage
Committer: Weblate
Commit: adhoc-cicd-oca-mail:d47d1829  
Subject: Merge commit 'refs/pull/108/head' of github.com:oca/mail into 19.0-20144
Author: adhoc-cicd-bot
Committer: adhoc-cicd-bot
Commit: adhoc-cicd-odoo-odoo:432abf60  
Subject: Merge commit 'refs/pull/230101/head' of github.com:odoo/odoo into 19.0-20165
Author: adhoc-cicd-bot
Committer: adhoc-cicd-bot
Commit: adhoc-cicd-oca-pos:4542df79  
Subject: Initial commit
Author: OCA Bot
Committer: OCA Bot
Commit: adhoc-cicd-oca-stock-logistics-request:f12f0f9c  
Subject: Initial commit
Author: OCA Bot
Committer: OCA Bot
Commit: adhoc-cicd-oca-account-analytic:00b0e5de  
Subject: Merge commit 'refs/pull/858/head' of github.com:oca/account-analytic into 19.0-20001
Author: adhoc-cicd-bot
Committer: adhoc-cicd-bot
Commit: adhoc-cicd-oca-stock-logistics-availability:2e76b736  
Subject: Merge commit 'refs/pull/64/head' of github.com:oca/stock-logistics-availability into 19.0-20048
Author: adhoc-cicd-bot
Committer: adhoc-cicd-bot
Commit: adhoc-cicd-oca-account-reconcile:60824bbd  
Subject: [BOT] post-merge updates
Author: OCA-git-bot
Committer: OCA-git-bot
Commit: adhoc-cicd-oca-timesheet:cf6306e6  
Subject: Translated using Weblate (Italian)
Author: mymage
Committer: Weblate
Commit: adhoc-cicd-odoo-enterprise:7badfbd4  
Subject: Merge commit 'refs/pull/100457/head' of github.com:odoo/enterprise into 19.0-20159
Author: adhoc-cicd-bot
Committer: adhoc-cicd-bot
Commit: adhoc-cicd-oca-survey:0880e177  
Subject: Initial commit
Author: OCA Bot
Committer: OCA Bot
Commit: adhoc-cicd-oca-website:4cdcb768  
Subject: Merge commit 'refs/pull/1131/head' of github.com:oca/website into 19.0-20053
Author: adhoc-cicd-bot
Committer: adhoc-cicd-bot
Commit: adhoc-cicd-oca-server-backend:ebf69e6d  
Subject: Translated using Weblate (Italian)
Author: mymage
Committer: Weblate
Commit: adhoc-cicd-odoo-design-themes:7b23e8e5  
Subject: [I18N] *: fetch latest Weblate translations
Author: Odoo Translation Bot
Committer: Odoo Translation Bot
Commit: adhoc-cicd-oca-partner-contact:03322d7a  
Subject: [BOT] post-merge updates
Author: OCA-git-bot
Committer: OCA-git-bot
Commit: adhoc-cicd-oca-server-auth:2f76674d  
Subject: Merge commit 'refs/pull/853/head' of github.com:oca/server-auth into 19.0-20131
Author: adhoc-cicd-bot
Committer: adhoc-cicd-bot
Commit: adhoc-cicd-oca-knowledge:ffb9a212  
Subject: [BOT] post-merge updates
Author: OCA-git-bot
Committer: OCA-git-bot
Commit: adhoc-cicd-oca-product-attribute:0b4665a2  
Subject: Merge commit 'refs/pull/2089/head' of github.com:oca/product-attribute into 19.0-20108
Author: adhoc-cicd-bot
Committer: adhoc-cicd-bot
Commit: adhoc-cicd-oca-brand:88ca650a  
Subject: Translated using Weblate (Italian)
Author: mymage
Committer: Weblate
Commit: adhoc-cicd-oca-mis-builder:fd504a91  
Subject: [UPD] addons table in README.md
Author: OCA-git-bot
Committer: OCA-git-bot
Commit: adhoc-cicd-oca-account-invoicing:acbe8ddb  
Subject: Merge commit 'refs/pull/2144/head' of github.com:oca/account-invoicing into 19.0-20142
Author: adhoc-cicd-bot
Committer: adhoc-cicd-bot
Commit: adhoc-cicd-oca-stock-logistics-workflow:b5ff2787  
Subject: Merge commit 'refs/pull/2151/head' of github.com:oca/stock-logistics-workflow into 19.0-20158
Author: adhoc-cicd-bot
Committer: adhoc-cicd-bot
Commit: adhoc-cicd-oca-management-system:3a4d4081  
Subject: Initial commit
Author: OCA Bot
Committer: OCA Bot
Commit: adhoc-cicd-oca-server-ux:8257bfa2  
Subject: Merge commit 'refs/pull/1182/head' of github.com:oca/server-ux into 19.0-20110
Author: adhoc-cicd-bot
Committer: adhoc-cicd-bot
Commit: adhoc-cicd-oca-e-commerce:2b0d048e  
Subject: Initial commit
Author: OCA Bot
Committer: OCA Bot
Commit: adhoc-cicd-oca-hr-expense:18a0b1c9  
Subject: Initial commit
Author: OCA Bot
Committer: OCA Bot
Commit: adhoc-cicd-oca-manufacture:9ac749b4  
Subject: [BOT] post-merge updates
Author: OCA-git-bot
Committer: OCA-git-bot
Commit: adhoc-cicd-oca-crm:f8be762e  
Subject: [BOT] post-merge updates
Author: OCA-git-bot
Committer: OCA-git-bot
Commit: adhoc-cicd-oca-stock-logistics-barcode:de499cbe  
Subject: Merge pull request #740 from OCA/19-README
Author: Jacques-Etienne Baudoux
Committer: GitHub
Commit: adhoc-cicd-oca-project:1252f57f  
Subject: [BOT] post-merge updates
Author: OCA-git-bot
Committer: OCA-git-bot
Commit: adhoc-cicd-oca-server-tools:b7eb34b7  
Subject: Merge commit 'refs/pull/3381/head' of github.com:oca/server-tools into 19.0-20109
Author: adhoc-cicd-bot
Committer: adhoc-cicd-bot
Commit: adhoc-cicd-oca-social:45e58304  
Subject: Initial commit
Author: OCA Bot
Committer: OCA Bot
Commit: adhoc-cicd-oca-purchase-workflow:ae52a4d6  
Subject: Merge commit 'refs/pull/2878/head' of github.com:oca/purchase-workflow into 19.0-20145
Author: adhoc-cicd-bot
Committer: adhoc-cicd-bot
Commit: adhoc-cicd-oca-stock-logistics-warehouse:27a94faf  
Subject: [BOT] post-merge updates
Author: OCA-git-bot
Committer: OCA-git-bot
Commit: adhoc-cicd-oca-web:56b0b43a  
Subject: Merge commit 'refs/pull/3310/head' of github.com:oca/web into 19.0-20148
Author: adhoc-cicd-bot
Committer: adhoc-cicd-bot
Commit: adhoc-cicd-oca-product-pack:71c37a42  
Subject: Merge commit 'refs/pull/225/head' of github.com:oca/product-pack into 19.0-20043
Author: adhoc-cicd-bot
Committer: adhoc-cicd-bot
Commit: adhoc-cicd-oca-hr-holidays:ca01205e  
Subject: Initial commit
Author: OCA Bot
Committer: OCA Bot
Commit: adhoc-cicd-oca-reporting-engine:7278b347  
Subject: [BOT] post-merge updates
Author: OCA-git-bot
Committer: OCA-git-bot
Commit: adhoc-cicd-oca-sale-workflow:380a61d8  
Subject: Merge commit 'refs/pull/3933/head' of github.com:oca/sale-workflow into 19.0-20004
Author: adhoc-cicd-bot
Committer: adhoc-cicd-bot
Commit: adhoc-cicd-oca-bank-statement-import:c71dea90  
Subject: Merge commit 'refs/pull/894/head' of github.com:oca/bank-statement-import into 19.0-20143
Author: adhoc-cicd-bot
Committer: adhoc-cicd-bot
Commit: adhoc-cicd-oca-stock-logistics-reservation:f7c377b1  
Subject: Merge commit 'refs/pull/44/head' of github.com:oca/stock-logistics-reservation into 19.0-20050
Author: adhoc-cicd-bot
Committer: adhoc-cicd-bot
Commit: adhoc-cicd-oca-report-print-send:b54be2c0  
Subject: [BOT] post-merge updates
Author: OCA-git-bot
Committer: OCA-git-bot
Version: 19.0
Config: [19.0] Odoo by Adhoc Config (with tests)
Build time: 11m
Wait time: 11m
Load time: 11m7s
Date Level Type Message
2026-02-23 14:43:00 INFO runbot Init build environment with config [19.0] Odoo by Adhoc Config (with tests)
2026-02-23 14:43:00 Starting step 19-all-with-tests from config 19.0] Odoo by Adhoc Config (with tests) [
2026-02-23 14:43:00 Using Dockerfile Tag odoo:adhoc_odoo_19
2026-02-23 14:43:08 INFO server odoo.modules.loading:350 1 modules loaded in 4.50s, 9449 queries (+9449 extra)
2026-02-23 14:46:50 INFO server odoo.addons.l10n_ar_edi.models.res_company:160 Setting demo certificate from False to AR demo certificate 3 in (AR) Responsable Inscripto company
2026-02-23 14:46:50 INFO server odoo.addons.l10n_ar_edi.models.res_company:160 Setting demo certificate from False to AR demo certificate 2 in (AR) Monotributista company
2026-02-23 14:46:50 INFO server odoo.addons.l10n_ar_edi.models.res_company:160 Setting demo certificate from False to AR demo certificate 10 in (AR) Exento company
2026-02-23 14:47:54 INFO server odoo.addons.l10n_ar_currency_update.models.res_company:36 Currency Provider configured as ARCA for next companies: (AR) Exento, (AR) Monotributista, (AR) Responsable Inscripto, Asesoramiento (M), Casa Matriz SRL. RI, Distribuidora, Distribuidora SRL, Reventa, Reventa SA, Sucursal Centro, Sucursal Norte
2026-02-23 14:49:12 INFO server odoo.addons.l10n_ar_currency_update.models.res_company:36 Currency Provider configured as ARCA for next companies: (AR) Exento, (AR) Monotributista, Asesoramiento (M), Casa Matriz SRL. RI, Distribuidora, Distribuidora SRL, Muebleria ARG, Reventa, Reventa SA, Sucursal Centro, Sucursal Norte
2026-02-23 14:50:37 INFO server odoo.modules.loading:350 680 modules loaded in 446.18s, 521812 queries (+550574 extra)
2026-02-23 14:50:38 INFO server odoo.modules.loading:350 683 modules loaded in 1.40s, 1465 queries (+1465 extra)
2026-02-23 14:50:41 INFO server odoo.addons.base.models.ir_qweb:350 Pregenerating assets bundles
2026-02-23 14:51:23 INFO server odoo.addons.l10n_ar_currency_update.models.res_company:36 Currency Provider configured as ARCA for next companies: (AR) Exento, Asesoramiento (M), Casa Matriz SRL. RI, Distribuidora, Distribuidora SRL, Muebleria ARG, Reventa, Reventa SA, Sucursal Centro, Sucursal Norte
2026-02-23 14:51:26 INFO server odoo.addons.l10n_ar_currency_update.models.res_company:36 Currency Provider configured as ARCA for next companies: (AR) Exento, Asesoramiento (M), Casa Matriz SRL. RI, Distribuidora, Distribuidora SRL, Muebleria ARG, Reventa, Reventa SA, Sucursal Centro, Sucursal Norte
2026-02-23 14:51:38 INFO server odoo.addons.l10n_ar_currency_update.models.res_company:36 Currency Provider configured as ARCA for next companies: (AR) Exento, Asesoramiento (M), Casa Matriz SRL. RI, Distribuidora, Distribuidora SRL, Muebleria ARG, Reventa, Reventa SA, Sucursal Centro, Sucursal Norte
2026-02-23 14:51:51 INFO server odoo.addons.l10n_ar_currency_update.models.res_company:36 Currency Provider configured as ARCA for next companies: (AR) Exento, Asesoramiento (M), Casa Matriz SRL. RI, Distribuidora, Distribuidora SRL, Muebleria ARG, Reventa, Reventa SA, Sucursal Centro, Sucursal Norte
2026-02-23 14:52:05 INFO server odoo.addons.l10n_ar_currency_update.models.res_company:36 Currency Provider configured as ARCA for next companies: (AR) Exento, Asesoramiento (M), Casa Matriz SRL. RI, Distribuidora, Distribuidora SRL, Muebleria ARG, Reventa, Reventa SA, Sucursal Centro, Sucursal Norte
2026-02-23 14:52:05 INFO server odoo.addons.l10n_ar_currency_update.models.res_company:36 Currency Provider configured as ARCA for next companies: (AR) Exento, Asesoramiento (M), Casa Matriz SRL. RI, Distribuidora, Distribuidora SRL, Muebleria ARG, Reventa, Reventa SA, Sucursal Centro, Sucursal Norte
2026-02-23 14:52:09 INFO server odoo.addons.l10n_ar_currency_update.models.res_company:36 Currency Provider configured as ARCA for next companies: (AR) Exento, Asesoramiento (M), Casa Matriz SRL. RI, Distribuidora, Distribuidora SRL, Muebleria ARG, Reventa, Reventa SA, Sucursal Centro, Sucursal Norte
2026-02-23 14:52:11 INFO server odoo.addons.l10n_ar_currency_update.models.res_company:36 Currency Provider configured as ARCA for next companies: (AR) Exento, Asesoramiento (M), Casa Matriz SRL. RI, Distribuidora, Distribuidora SRL, Muebleria ARG, Reventa, Reventa SA, Sucursal Centro, Sucursal Norte
2026-02-23 14:52:11 INFO server odoo.addons.l10n_ar_currency_update.models.res_company:36 Currency Provider configured as ARCA for next companies: (AR) Exento, Asesoramiento (M), Casa Matriz SRL. RI, Distribuidora, Distribuidora SRL, Muebleria ARG, Reventa, Reventa SA, Sucursal Centro, Sucursal Norte
2026-02-23 14:52:13 INFO server odoo.addons.l10n_ar_currency_update.models.res_company:36 Currency Provider configured as ARCA for next companies: (AR) Exento, Asesoramiento (M), Casa Matriz SRL. RI, Distribuidora, Distribuidora SRL, Muebleria ARG, Reventa, Reventa SA, Sucursal Centro, Sucursal Norte
2026-02-23 14:52:16 INFO server odoo.addons.l10n_ar_currency_update.models.res_company:36 Currency Provider configured as ARCA for next companies: (AR) Exento, Asesoramiento (M), Casa Matriz SRL. RI, Distribuidora, Distribuidora SRL, Muebleria ARG, Reventa, Reventa SA, Sucursal Centro, Sucursal Norte
2026-02-23 14:52:16 INFO server odoo.addons.l10n_ar_currency_update.models.res_company:36 Currency Provider configured as ARCA for next companies: (AR) Exento, Asesoramiento (M), Casa Matriz SRL. RI, Distribuidora, Distribuidora SRL, Muebleria ARG, Reventa, Reventa SA, Sucursal Centro, Sucursal Norte
2026-02-23 14:52:18 INFO server odoo.addons.l10n_ar_currency_update.models.res_company:36 Currency Provider configured as ARCA for next companies: (AR) Exento, Asesoramiento (M), Casa Matriz SRL. RI, Distribuidora, Distribuidora SRL, Muebleria ARG, Reventa, Reventa SA, Sucursal Centro, Sucursal Norte
2026-02-23 14:52:43 INFO server odoo.addons.l10n_ar_currency_update.models.res_company:36 Currency Provider configured as ARCA for next companies: (AR) Exento, Asesoramiento (M), Casa Matriz SRL. RI, Distribuidora, Distribuidora SRL, Muebleria ARG, Reventa, Reventa SA, Sucursal Centro, Sucursal Norte
2026-02-23 14:52:45 INFO server odoo.addons.l10n_ar_currency_update.models.res_company:36 Currency Provider configured as ARCA for next companies: (AR) Exento, Asesoramiento (M), Casa Matriz SRL. RI, Distribuidora, Distribuidora SRL, Muebleria ARG, Reventa, Reventa SA, Sucursal Centro, Sucursal Norte, company_1_data
2026-02-23 14:52:52 INFO server odoo.addons.l10n_ar_currency_update.models.res_company:36 Currency Provider configured as ARCA for next companies: (AR) Exento, (AR) Responsable Inscripto (Unit Tests), Asesoramiento (M), Casa Matriz SRL. RI, Distribuidora, Distribuidora SRL, Muebleria ARG, Reventa, Reventa SA, Sucursal Centro, Sucursal Norte
2026-02-23 14:52:54 INFO server odoo.addons.l10n_ar_currency_update.models.res_company:36 Currency Provider configured as ARCA for next companies: (AR) Exento, (AR) Monotributista (Unit Tests), (AR) Responsable Inscripto (Unit Tests), Asesoramiento (M), Casa Matriz SRL. RI, Distribuidora, Distribuidora SRL, Muebleria ARG, Reventa, Reventa SA, Sucursal Centro, Sucursal Norte
2026-02-23 14:53:00 INFO server odoo.addons.l10n_ar_currency_update.models.res_company:36 Currency Provider configured as ARCA for next companies: (AR) Exento, (AR) Monotributista (Unit Tests), (AR) Responsable Inscripto (Unit Tests), Asesoramiento (M), Casa Matriz SRL. RI, Distribuidora, Distribuidora SRL, Muebleria ARG, Reventa, Reventa SA, Sucursal Centro, Sucursal Norte
2026-02-23 14:53:07 INFO server odoo.addons.l10n_ar_currency_update.models.res_company:36 Currency Provider configured as ARCA for next companies: (AR) Exento, Asesoramiento (M), Casa Matriz SRL. RI, Distribuidora, Distribuidora SRL, Muebleria ARG, Reventa, Reventa SA, Sucursal Centro, Sucursal Norte
2026-02-23 14:53:10 INFO server odoo.addons.l10n_ar_currency_update.models.res_company:36 Currency Provider configured as ARCA for next companies: (AR) Exento, Asesoramiento (M), Casa Matriz SRL. RI, Distribuidora, Distribuidora SRL, Muebleria ARG, Reventa, Reventa SA, Sucursal Centro, Sucursal Norte
2026-02-23 14:53:13 INFO server odoo.addons.l10n_ar_currency_update.models.res_company:36 Currency Provider configured as ARCA for next companies: (AR) Exento, Asesoramiento (M), Casa Matriz SRL. RI, Distribuidora, Distribuidora SRL, Muebleria ARG, Reventa, Reventa SA, Sucursal Centro, Sucursal Norte
2026-02-23 14:53:14 INFO server odoo.addons.l10n_ar_currency_update.models.res_company:36 Currency Provider configured as ARCA for next companies: (AR) Exento, Asesoramiento (M), Casa Matriz SRL. RI, Distribuidora, Distribuidora SRL, Muebleria ARG, Reventa, Reventa SA, Sucursal Centro, Sucursal Norte
2026-02-23 14:53:16 INFO server odoo.addons.l10n_ar_currency_update.models.res_company:36 Currency Provider configured as ARCA for next companies: (AR) Exento, Asesoramiento (M), Casa Matriz SRL. RI, Distribuidora, Distribuidora SRL, Muebleria ARG, Reventa, Reventa SA, Sucursal Centro, Sucursal Norte
2026-02-23 14:53:19 INFO server odoo.addons.l10n_ar_currency_update.models.res_company:36 Currency Provider configured as ARCA for next companies: (AR) Exento, Asesoramiento (M), Casa Matriz SRL. RI, Distribuidora, Distribuidora SRL, Muebleria ARG, Reventa, Reventa SA, Sucursal Centro, Sucursal Norte
2026-02-23 14:53:36 INFO server odoo.addons.l10n_ar_currency_update.models.res_company:36 Currency Provider configured as ARCA for next companies: (AR) Exento, Asesoramiento (M), Casa Matriz SRL. RI, Distribuidora, Distribuidora SRL, Muebleria ARG, Reventa, Reventa SA, Sucursal Centro, Sucursal Norte
2026-02-23 14:53:38 INFO server odoo.addons.l10n_ar_currency_update.models.res_company:36 Currency Provider configured as ARCA for next companies: (AR) Exento, Asesoramiento (M), Casa Matriz SRL. RI, Distribuidora, Distribuidora SRL, Muebleria ARG, Reventa, Reventa SA, Sucursal Centro, Sucursal Norte
2026-02-23 14:53:41 INFO server odoo.addons.l10n_ar_currency_update.models.res_company:36 Currency Provider configured as ARCA for next companies: (AR) Exento, Asesoramiento (M), Casa Matriz SRL. RI, Distribuidora, Distribuidora SRL, Muebleria ARG, Reventa, Reventa SA, Sucursal Centro, Sucursal Norte
2026-02-23 14:53:43 INFO server odoo.addons.l10n_ar_currency_update.models.res_company:36 Currency Provider configured as ARCA for next companies: (AR) Exento, Asesoramiento (M), Casa Matriz SRL. RI, Distribuidora, Distribuidora SRL, Muebleria ARG, Reventa, Reventa SA, Sucursal Centro, Sucursal Norte, company_1_data
2026-02-23 14:53:49 INFO server odoo.addons.l10n_ar_currency_update.models.res_company:36 Currency Provider configured as ARCA for next companies: (AR) Exento, Asesoramiento (M), Casa Matriz SRL. RI, Distribuidora, Distribuidora SRL, Muebleria ARG, Reventa, Reventa SA, Sucursal Centro, Sucursal Norte, company_1_data, Test Argentine Company 2
2026-02-23 14:54:06 INFO runbot Getting results for build 50101-19-0
2026-02-23 14:54:06 Step 19-all-with-tests finished in 11m
2026-02-23 14:54:06 Starting step setup from config 19.0] Odoo by Adhoc Config (with tests) [
2026-02-23 14:54:06 Using Dockerfile Tag odoo:adhoc_odoo_19
2026-02-23 14:54:07 INFO runbot Step setup finished in 0s
2026-02-23 14:54:07 Starting step run from config 19.0] Odoo by Adhoc Config (with tests) [
2026-02-23 14:54:07 INFO runbot Start running build 50101-19-0
2026-02-23 14:54:07 Using Dockerfile Tag odoo:adhoc_odoo_19
2026-02-23 14:54:08 INFO server odoo.modules.loading:350 1 modules loaded in 0.00s, 0 queries (+0 extra)
2026-02-23 14:54:12 INFO server odoo.modules.loading:350 683 modules loaded in 3.73s, 0 queries (+0 extra)
2026-02-23 14:54:29 ERROR server odoo.addons.ai.models.ai_embedding:141 Failed to process batch 1/1 for model text-embedding-3-small: Not Provider url or saas database uuid configured
2026-02-23 14:54:29 WARNING server odoo.addons.base.models.ir_qweb:2477 Found deprecated directive @t-raw="'\\n'" in template 875. Replace by @t-out, and explicitely wrap content in `Markup` if necessary (which likely is not the case)
2026-02-23 14:54:34 WARNING server odoo.addons.base.models.ir_actions_report:630
wkhtmltopdf: Exit with code 1 due to network error: ContentNotFoundError
2026-02-23 14:54:38 WARNING server odoo.addons.base.models.ir_actions_report:630
wkhtmltopdf: Exit with code 1 due to network error: ContentNotFoundError
2026-02-23 14:54:42 WARNING server odoo.addons.base.models.ir_actions_report:630
wkhtmltopdf: Exit with code 1 due to network error: ContentNotFoundError
2026-02-23 14:54:47 WARNING server odoo.addons.base.models.ir_actions_report:630
wkhtmltopdf: Exit with code 1 due to network error: ContentNotFoundError
2026-02-23 14:54:51 WARNING server odoo.addons.base.models.ir_actions_report:630
wkhtmltopdf: Exit with code 1 due to network error: ContentNotFoundError
2026-02-23 14:54:56 WARNING server odoo.addons.base.models.ir_actions_report:630
wkhtmltopdf: Exit with code 1 due to network error: ContentNotFoundError
2026-02-23 14:55:00 WARNING server odoo.addons.base.models.ir_actions_report:630
wkhtmltopdf: Exit with code 1 due to network error: ContentNotFoundError
2026-02-23 14:55:04 WARNING server odoo.addons.base.models.ir_actions_report:630
wkhtmltopdf: Exit with code 1 due to network error: ContentNotFoundError
2026-02-23 14:55:08 WARNING server odoo.addons.base.models.ir_actions_report:630
wkhtmltopdf: Exit with code 1 due to network error: ContentNotFoundError
2026-02-23 14:55:13 WARNING server odoo.addons.base.models.ir_actions_report:630
wkhtmltopdf: Exit with code 1 due to network error: ContentNotFoundError
2026-02-23 14:55:17 WARNING server odoo.addons.base.models.ir_actions_report:630
wkhtmltopdf: Exit with code 1 due to network error: ContentNotFoundError
2026-02-23 14:55:21 WARNING server odoo.addons.base.models.ir_actions_report:630
wkhtmltopdf: Exit with code 1 due to network error: ContentNotFoundError
2026-02-23 14:55:25 WARNING server odoo.addons.base.models.ir_actions_report:630
wkhtmltopdf: Exit with code 1 due to network error: ContentNotFoundError
2026-02-23 14:55:29 WARNING server odoo.addons.base.models.ir_actions_report:630
wkhtmltopdf: Exit with code 1 due to network error: ContentNotFoundError
2026-02-23 14:55:33 WARNING server odoo.addons.base.models.ir_actions_report:630
wkhtmltopdf: Exit with code 1 due to network error: ContentNotFoundError
2026-02-23 14:55:37 WARNING server odoo.addons.base.models.ir_actions_report:630
wkhtmltopdf: Exit with code 1 due to network error: ContentNotFoundError
2026-02-23 14:55:41 WARNING server odoo.addons.base.models.ir_actions_report:630
wkhtmltopdf: Exit with code 1 due to network error: ContentNotFoundError
2026-02-23 14:55:46 WARNING server odoo.addons.base.models.ir_actions_report:630
wkhtmltopdf: Exit with code 1 due to network error: ContentNotFoundError
2026-02-23 14:55:50 WARNING server odoo.addons.base.models.ir_actions_report:630
wkhtmltopdf: Exit with code 1 due to network error: ContentNotFoundError
2026-02-23 14:55:54 WARNING server odoo.addons.base.models.ir_actions_report:630
wkhtmltopdf: Exit with code 1 due to network error: ContentNotFoundError
2026-02-23 14:55:58 WARNING server odoo.addons.base.models.ir_actions_report:630
wkhtmltopdf: Exit with code 1 due to network error: ContentNotFoundError
2026-02-23 14:55:58 WARNING server odoo.addons.whatsapp_event.models.event_mail:39 Cannot process scheduler 24 (event Live Music Festival - ID 4) as it refers to whatsapp template Event Ticket (ID 2) that is not approved
2026-02-23 14:56:11 WARNING server odoo.addons.l10n_uy_edi.models.l10n_uy_edi_document:648
An error was found when synchronizing vendor bills
2026-02-23 14:56:11 WARNING server odoo.addons.l10n_uy_edi.models.l10n_uy_edi_document:650 Company Name: "Muebleria UY", Company ID: (18), Errors: "We found an error while consulting a notification Incomplete Data to connect to UCFE Provider on company Muebleria UY: Please complete the UCFE data to test the connection: UCFE Provider WS Password, UCFE Provider Commerce code, UCFE Provider Terminal code, UCFE Provider Inbox URL, UCFE Provider Query URL."
2026-02-23 14:56:16 WARNING server odoo.addons.base.models.ir_actions_report:630
wkhtmltopdf: Exit with code 1 due to network error: ContentNotFoundError
2026-02-23 14:56:20 WARNING server odoo.addons.base.models.ir_actions_report:630
wkhtmltopdf: Exit with code 1 due to network error: ContentNotFoundError
2026-02-23 14:56:24 WARNING server odoo.addons.base.models.ir_actions_report:630
wkhtmltopdf: Exit with code 1 due to network error: ContentNotFoundError
2026-02-23 14:56:29 ERROR server odoo.addons.ai.models.ai_embedding:141 Failed to process batch 1/1 for model text-embedding-3-small: Not Provider url or saas database uuid configured
2026-02-23 14:56:29 ERROR server odoo.addons.ai.models.ai_embedding:141 Failed to process batch 1/1 for model text-embedding-3-small: Not Provider url or saas database uuid configured
2026-02-23 14:58:55 WARNING server odoo.addons.whatsapp_event.models.event_mail:39 Cannot process scheduler 24 (event Live Music Festival - ID 4) as it refers to whatsapp template Event Ticket (ID 2) that is not approved
2026-02-23 15:12:27 WARNING server odoo.http:2827
Uh-oh! Looks like you have stumbled upon some top-secret records.

Sorry, Soporte ADHOC (id=2) doesn't have 'read' access to:
- User (res.users)

If you really, really need access, perhaps you can win over your friendly administrator with a batch of freshly baked cookies.

This seems to be a multi-company issue, you might be able to access the record by switching to the company: Muebleria US.

Implicitly accessed through 'Usuario' (res.users).
2026-02-23 15:12:44 WARNING server odoo.http:2827
Failed to write field res.partner.message_partner_ids
Uh-oh! Looks like you have stumbled upon some top-secret records.

Sorry, Soporte ADHOC (id=2) doesn't have 'read' access to:
- Contact (res.partner)

If you really, really need access, perhaps you can win over your friendly administrator with a batch of freshly baked cookies.

This seems to be a multi-company issue, you might be able to access the record by switching to the company: Muebleria US.
2026-02-23 15:44:23 WARNING server odoo.models:576 @api.onchange('product_id', 'product_uom_qty', 'product_uom_id', 'price_unit', 'discount', 'name', 'tax_id') parameters must be field names -> not valid: ['tax_id']
2026-02-23 15:44:30 INFO server odoo.modules.loading:350 1 modules loaded in 0.00s, 0 queries (+0 extra)
2026-02-23 15:44:38 INFO server odoo.modules.loading:350 690 modules loaded in 5.83s, 11916 queries (+11916 extra)
2026-02-23 15:45:00 WARNING server odoo.models:576 @api.onchange('product_id', 'product_uom_qty', 'product_uom_id', 'price_unit', 'discount', 'name', 'tax_id') parameters must be field names -> not valid: ['tax_id']
2026-02-23 15:45:25 INFO server odoo.modules.loading:350 1 modules loaded in 0.00s, 0 queries (+0 extra)
2026-02-23 15:45:25 INFO server odoo.modules.loading:350 690 modules loaded in 0.23s, 0 queries (+0 extra)
2026-02-23 15:46:17 WARNING server odoo.models:576 @api.onchange('product_id', 'product_uom_qty', 'product_uom_id', 'price_unit', 'discount', 'name', 'tax_id') parameters must be field names -> not valid: ['tax_id']
2026-02-23 15:47:07 WARNING server odoo.addons.base.models.ir_qweb:1809 Unknown directives or unused attributes: {'t-index'} in 4054
2026-02-23 15:47:07 WARNING server odoo.addons.base.models.ir_qweb:1809 Unknown directives or unused attributes: {'t-index'} in 4054
2026-02-23 15:47:07 ERROR server odoo.http:2831
Exception during request handling.
Traceback (most recent call last):
  File "/data/build/adhoc-cicd-odoo-odoo/odoo/addons/base/models/ir_qweb.py", line 756, in _render_iterall
    for item in frame.iterator:
                ^^^^^^^^^^^^^^
  File "<4054>", line 2001, in template_sale_report_saleorder_document_4054_t_call_0
AttributeError: 'product.product' object has no attribute 'image_sale_order'

The above exception was the direct cause of the following exception:

Traceback (most recent call last):
  File "/data/build/adhoc-cicd-odoo-odoo/odoo/http.py", line 2800, in __call__
    response = request._serve_db()
               ^^^^^^^^^^^^^^^^^^^
  File "/data/build/adhoc-cicd-odoo-odoo/odoo/http.py", line 2275, in _serve_db
    raise self._update_served_exception(exc)
  File "/data/build/adhoc-cicd-odoo-odoo/odoo/http.py", line 2273, in _serve_db
    return service_model.retrying(serve_func, env=self.env)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/data/build/adhoc-cicd-odoo-odoo/odoo/service/model.py", line 185, in retrying
    result = func()
             ^^^^^^
  File "/data/build/adhoc-cicd-odoo-odoo/odoo/http.py", line 2328, in _serve_ir_http
    response = self.dispatcher.dispatch(rule.endpoint, args)
               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/data/build/adhoc-cicd-odoo-odoo/odoo/http.py", line 2543, in dispatch
    result = self.request.registry['ir.http']._dispatch(endpoint)
             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/data/build/adhoc-cicd-odoo-odoo/odoo/addons/base/models/ir_http.py", line 355, in _dispatch
    result = endpoint(**request.params)
             ^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/data/build/adhoc-cicd-odoo-odoo/odoo/http.py", line 788, in route_wrapper
    result = endpoint(self, *args, **params_ok)
             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/data/build/adhoc-cicd-odoo-enterprise/web_studio/controllers/report.py", line 715, in save_report
    report_html = self._render_report(report, record_id)
                  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/data/build/adhoc-cicd-odoo-enterprise/web_studio/controllers/report.py", line 663, in _render_report
    return request.env['ir.actions.report'].with_context(studio=True)._render_qweb_html(report, [record_id] if record_id else [], {"studio": True})
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/data/build/adhoc-cicd-odoo-enterprise/web_studio/models/ir_actions_report.py", line 24, in _render_qweb_html
    return super(IrActionsReport, self)._render_qweb_html(report_ref, docids, data)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/data/build/adhoc-cicd-odoo-odoo/odoo/addons/base/models/ir_actions_report.py", line 1116, in _render_qweb_html
    return self._render_template(report.report_name, data), 'html'
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/data/build/adhoc-cicd-odoo-odoo/odoo/addons/base/models/ir_actions_report.py", line 789, in _render_template
    return view_obj._render_template(template, values).encode()
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/data/build/adhoc-cicd-odoo-odoo/addons/website/models/ir_ui_view.py", line 456, in _render_template
    return super()._render_template(template, values=values)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/data/build/adhoc-cicd-odoo-odoo/odoo/addons/base/models/ir_ui_view.py", line 2542, in _render_template
    return self.env['ir.qweb']._render(template, values)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/data/build/adhoc-cicd-odoo-enterprise/web_studio/models/ir_qweb.py", line 13, in _render
    return super(IrQweb, self.with_context(inherit_branding=True))._render(template, values, **options)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/data/build/adhoc-cicd-odoo-odoo/odoo/addons/base/models/ir_qweb.py", line 728, in _render
    return Markup(''.join(iterator))
                  ^^^^^^^^^^^^^^^^^
  File "/data/build/adhoc-cicd-odoo-odoo/odoo/addons/base/models/ir_qweb.py", line 756, in _render_iterall
    for item in frame.iterator:
                ^^^^^^^^^^^^^^
  File "<4054>", line 3523, in template_sale_report_saleorder_document_4054
  File "<4054>", line 3509, in template_sale_report_saleorder_document_4054_content
  File "/data/build/adhoc-cicd-odoo-odoo/odoo/addons/base/models/ir_qweb.py", line 619, in __str__
    self.html = ''.join(self.irQweb._render_iterall(
                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/data/build/adhoc-cicd-odoo-odoo/odoo/addons/base/models/ir_qweb.py", line 850, in _render_iterall
    raise QWebError(qweb_error_info) from error
odoo.addons.base.models.ir_qweb.QWebError: Error while rendering the template:
    AttributeError: 'product.product' object has no attribute 'image_sale_order'
    Template: sale.report_saleorder_document
    Reference: 4054
    Path: /t/t/div/table/tbody/t[4]/t[10]/tr[4]/td[2]/span
    Element: <span t-if="line.product_id.image_sale_order" t-field="line.product_id.image_sale_order" t-options="{&quot;widget&quot;: &quot;image&quot;, &quot;class&quot;: &quot;img img-fluid&quot;, &quot;style&quot;: &quot;max-width: 50px; max-height: 50px; display: block; margin: auto;&quot;}"/>
    From: (4055, '/t/t', '<t t-call="web.html_container"/>')
          (212, '/t/t[2]', '<t t-call="web.report_layout"/>')
          (210, '/t/html/body/div/main/t', '<t t-out="0"/>')
          (212, '/t/t[2]', '<t t-call="web.report_layout"/>')
          (210, '/t/html/body/div/main/t', '<t t-out="0"/>')
          (4055, '/t/t', '<t t-call="web.html_container"/>')
          (4055, '/t/t/t/t[1]', '<t t-call="sale.report_saleorder_document" t-inner-content="True" t-options-lang="doc.partner_id.lang"/>')
          (4054, '/t/t', '<t t-call="web.external_layout"/>')
          (4054, '/t/t/div/table/tbody/t[4]/t[10]/tr[4]/td[2]/span', '<span t-if="line.product_id.image_sale_order" t-field="line.product_id.image_sale_order" t-options="{&quot;widget&quot;: &quot;image&quot;, &quot;class&quot;: &quot;img img-fluid&quot;, &quot;style&quot;: &quot;max-width: 50px; max-height: 50px; display: block; margin: auto;&quot;}"/>')
2026-02-23 15:47:11 WARNING server odoo.addons.l10n_uy_edi.models.l10n_uy_edi_document:648
An error was found when synchronizing vendor bills
2026-02-23 15:47:11 WARNING server odoo.addons.l10n_uy_edi.models.l10n_uy_edi_document:650 Company Name: "Muebleria UY", Company ID: (18), Errors: "We found an error while consulting a notification Incomplete Data to connect to UCFE Provider on company Muebleria UY: Please complete the UCFE data to test the connection: UCFE Provider WS Password, UCFE Provider Commerce code, UCFE Provider Terminal code, UCFE Provider Inbox URL, UCFE Provider Query URL."
2026-02-23 15:47:14 WARNING server odoo.addons.base.models.ir_qweb:1809 Unknown directives or unused attributes: {'t-index'} in 4054
2026-02-23 15:47:14 WARNING server odoo.addons.base.models.ir_qweb:1809 Unknown directives or unused attributes: {'t-index'} in 4054
2026-02-23 15:47:14 ERROR server odoo.http:2831
Exception during request handling.
Traceback (most recent call last):
  File "/data/build/adhoc-cicd-odoo-odoo/odoo/addons/base/models/ir_qweb.py", line 756, in _render_iterall
    for item in frame.iterator:
                ^^^^^^^^^^^^^^
  File "<4054>", line 2001, in template_sale_report_saleorder_document_4054_t_call_0
AttributeError: 'product.product' object has no attribute 'image_sale_order'

The above exception was the direct cause of the following exception:

Traceback (most recent call last):
  File "/data/build/adhoc-cicd-odoo-odoo/odoo/http.py", line 2800, in __call__
    response = request._serve_db()
               ^^^^^^^^^^^^^^^^^^^
  File "/data/build/adhoc-cicd-odoo-odoo/odoo/http.py", line 2275, in _serve_db
    raise self._update_served_exception(exc)
  File "/data/build/adhoc-cicd-odoo-odoo/odoo/http.py", line 2273, in _serve_db
    return service_model.retrying(serve_func, env=self.env)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/data/build/adhoc-cicd-odoo-odoo/odoo/service/model.py", line 185, in retrying
    result = func()
             ^^^^^^
  File "/data/build/adhoc-cicd-odoo-odoo/odoo/http.py", line 2328, in _serve_ir_http
    response = self.dispatcher.dispatch(rule.endpoint, args)
               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/data/build/adhoc-cicd-odoo-odoo/odoo/http.py", line 2543, in dispatch
    result = self.request.registry['ir.http']._dispatch(endpoint)
             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/data/build/adhoc-cicd-odoo-odoo/odoo/addons/base/models/ir_http.py", line 355, in _dispatch
    result = endpoint(**request.params)
             ^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/data/build/adhoc-cicd-odoo-odoo/odoo/http.py", line 788, in route_wrapper
    result = endpoint(self, *args, **params_ok)
             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/data/build/adhoc-cicd-odoo-enterprise/web_studio/controllers/report.py", line 715, in save_report
    report_html = self._render_report(report, record_id)
                  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/data/build/adhoc-cicd-odoo-enterprise/web_studio/controllers/report.py", line 663, in _render_report
    return request.env['ir.actions.report'].with_context(studio=True)._render_qweb_html(report, [record_id] if record_id else [], {"studio": True})
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/data/build/adhoc-cicd-odoo-enterprise/web_studio/models/ir_actions_report.py", line 24, in _render_qweb_html
    return super(IrActionsReport, self)._render_qweb_html(report_ref, docids, data)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/data/build/adhoc-cicd-odoo-odoo/odoo/addons/base/models/ir_actions_report.py", line 1116, in _render_qweb_html
    return self._render_template(report.report_name, data), 'html'
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/data/build/adhoc-cicd-odoo-odoo/odoo/addons/base/models/ir_actions_report.py", line 789, in _render_template
    return view_obj._render_template(template, values).encode()
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/data/build/adhoc-cicd-odoo-odoo/addons/website/models/ir_ui_view.py", line 456, in _render_template
    return super()._render_template(template, values=values)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/data/build/adhoc-cicd-odoo-odoo/odoo/addons/base/models/ir_ui_view.py", line 2542, in _render_template
    return self.env['ir.qweb']._render(template, values)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/data/build/adhoc-cicd-odoo-enterprise/web_studio/models/ir_qweb.py", line 13, in _render
    return super(IrQweb, self.with_context(inherit_branding=True))._render(template, values, **options)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/data/build/adhoc-cicd-odoo-odoo/odoo/addons/base/models/ir_qweb.py", line 728, in _render
    return Markup(''.join(iterator))
                  ^^^^^^^^^^^^^^^^^
  File "/data/build/adhoc-cicd-odoo-odoo/odoo/addons/base/models/ir_qweb.py", line 756, in _render_iterall
    for item in frame.iterator:
                ^^^^^^^^^^^^^^
  File "<4054>", line 3523, in template_sale_report_saleorder_document_4054
  File "<4054>", line 3509, in template_sale_report_saleorder_document_4054_content
  File "/data/build/adhoc-cicd-odoo-odoo/odoo/addons/base/models/ir_qweb.py", line 619, in __str__
    self.html = ''.join(self.irQweb._render_iterall(
                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/data/build/adhoc-cicd-odoo-odoo/odoo/addons/base/models/ir_qweb.py", line 850, in _render_iterall
    raise QWebError(qweb_error_info) from error
odoo.addons.base.models.ir_qweb.QWebError: Error while rendering the template:
    AttributeError: 'product.product' object has no attribute 'image_sale_order'
    Template: sale.report_saleorder_document
    Reference: 4054
    Path: /t/t/div/table/tbody/t[4]/t[10]/tr[4]/td[2]/span
    Element: <span t-if="line.product_id.image_sale_order" t-field="line.product_id.image_sale_order" t-options="{&quot;widget&quot;: &quot;image&quot;, &quot;class&quot;: &quot;img img-fluid&quot;, &quot;style&quot;: &quot;max-width: 50px; max-height: 50px; display: block; margin: auto;&quot;}"/>
    From: (4055, '/t/t', '<t t-call="web.html_container"/>')
          (212, '/t/t[2]', '<t t-call="web.report_layout"/>')
          (210, '/t/html/body/div/main/t', '<t t-out="0"/>')
          (212, '/t/t[2]', '<t t-call="web.report_layout"/>')
          (210, '/t/html/body/div/main/t', '<t t-out="0"/>')
          (4055, '/t/t', '<t t-call="web.html_container"/>')
          (4055, '/t/t/t/t[1]', '<t t-call="sale.report_saleorder_document" t-inner-content="True" t-options-lang="doc.partner_id.lang"/>')
          (4054, '/t/t', '<t t-call="web.external_layout"/>')
          (4054, '/t/t/div/table/tbody/t[4]/t[10]/tr[4]/td[2]/span', '<span t-if="line.product_id.image_sale_order" t-field="line.product_id.image_sale_order" t-options="{&quot;widget&quot;: &quot;image&quot;, &quot;class&quot;: &quot;img img-fluid&quot;, &quot;style&quot;: &quot;max-width: 50px; max-height: 50px; display: block; margin: auto;&quot;}"/>')
2026-02-23 15:47:19 WARNING server odoo.addons.base.models.ir_qweb:1809 Unknown directives or unused attributes: {'t-index'} in 4054
2026-02-23 15:47:19 WARNING server odoo.addons.base.models.ir_qweb:1809 Unknown directives or unused attributes: {'t-index'} in 4054
2026-02-23 15:47:19 ERROR server odoo.http:2831
Exception during request handling.
Traceback (most recent call last):
  File "/data/build/adhoc-cicd-odoo-odoo/odoo/addons/base/models/ir_qweb.py", line 756, in _render_iterall
    for item in frame.iterator:
                ^^^^^^^^^^^^^^
  File "<4054>", line 2001, in template_sale_report_saleorder_document_4054_t_call_0
AttributeError: 'product.product' object has no attribute 'image_sale_order'

The above exception was the direct cause of the following exception:

Traceback (most recent call last):
  File "/data/build/adhoc-cicd-odoo-odoo/odoo/http.py", line 2800, in __call__
    response = request._serve_db()
               ^^^^^^^^^^^^^^^^^^^
  File "/data/build/adhoc-cicd-odoo-odoo/odoo/http.py", line 2275, in _serve_db
    raise self._update_served_exception(exc)
  File "/data/build/adhoc-cicd-odoo-odoo/odoo/http.py", line 2273, in _serve_db
    return service_model.retrying(serve_func, env=self.env)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/data/build/adhoc-cicd-odoo-odoo/odoo/service/model.py", line 185, in retrying
    result = func()
             ^^^^^^
  File "/data/build/adhoc-cicd-odoo-odoo/odoo/http.py", line 2328, in _serve_ir_http
    response = self.dispatcher.dispatch(rule.endpoint, args)
               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/data/build/adhoc-cicd-odoo-odoo/odoo/http.py", line 2543, in dispatch
    result = self.request.registry['ir.http']._dispatch(endpoint)
             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/data/build/adhoc-cicd-odoo-odoo/odoo/addons/base/models/ir_http.py", line 355, in _dispatch
    result = endpoint(**request.params)
             ^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/data/build/adhoc-cicd-odoo-odoo/odoo/http.py", line 788, in route_wrapper
    result = endpoint(self, *args, **params_ok)
             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/data/build/adhoc-cicd-odoo-enterprise/web_studio/controllers/report.py", line 715, in save_report
    report_html = self._render_report(report, record_id)
                  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/data/build/adhoc-cicd-odoo-enterprise/web_studio/controllers/report.py", line 663, in _render_report
    return request.env['ir.actions.report'].with_context(studio=True)._render_qweb_html(report, [record_id] if record_id else [], {"studio": True})
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/data/build/adhoc-cicd-odoo-enterprise/web_studio/models/ir_actions_report.py", line 24, in _render_qweb_html
    return super(IrActionsReport, self)._render_qweb_html(report_ref, docids, data)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/data/build/adhoc-cicd-odoo-odoo/odoo/addons/base/models/ir_actions_report.py", line 1116, in _render_qweb_html
    return self._render_template(report.report_name, data), 'html'
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/data/build/adhoc-cicd-odoo-odoo/odoo/addons/base/models/ir_actions_report.py", line 789, in _render_template
    return view_obj._render_template(template, values).encode()
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/data/build/adhoc-cicd-odoo-odoo/addons/website/models/ir_ui_view.py", line 456, in _render_template
    return super()._render_template(template, values=values)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/data/build/adhoc-cicd-odoo-odoo/odoo/addons/base/models/ir_ui_view.py", line 2542, in _render_template
    return self.env['ir.qweb']._render(template, values)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/data/build/adhoc-cicd-odoo-enterprise/web_studio/models/ir_qweb.py", line 13, in _render
    return super(IrQweb, self.with_context(inherit_branding=True))._render(template, values, **options)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/data/build/adhoc-cicd-odoo-odoo/odoo/addons/base/models/ir_qweb.py", line 728, in _render
    return Markup(''.join(iterator))
                  ^^^^^^^^^^^^^^^^^
  File "/data/build/adhoc-cicd-odoo-odoo/odoo/addons/base/models/ir_qweb.py", line 756, in _render_iterall
    for item in frame.iterator:
                ^^^^^^^^^^^^^^
  File "<4054>", line 3523, in template_sale_report_saleorder_document_4054
  File "<4054>", line 3509, in template_sale_report_saleorder_document_4054_content
  File "/data/build/adhoc-cicd-odoo-odoo/odoo/addons/base/models/ir_qweb.py", line 619, in __str__
    self.html = ''.join(self.irQweb._render_iterall(
                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/data/build/adhoc-cicd-odoo-odoo/odoo/addons/base/models/ir_qweb.py", line 850, in _render_iterall
    raise QWebError(qweb_error_info) from error
odoo.addons.base.models.ir_qweb.QWebError: Error while rendering the template:
    AttributeError: 'product.product' object has no attribute 'image_sale_order'
    Template: sale.report_saleorder_document
    Reference: 4054
    Path: /t/t/div/table/tbody/t[4]/t[10]/tr[4]/td[2]/span
    Element: <span t-if="line.product_id.image_sale_order" t-field="line.product_id.image_sale_order" t-options="{&quot;widget&quot;: &quot;image&quot;, &quot;class&quot;: &quot;img img-fluid&quot;, &quot;style&quot;: &quot;max-width: 50px; max-height: 50px; display: block; margin: auto;&quot;}"/>
    From: (4055, '/t/t', '<t t-call="web.html_container"/>')
          (212, '/t/t[2]', '<t t-call="web.report_layout"/>')
          (210, '/t/html/body/div/main/t', '<t t-out="0"/>')
          (212, '/t/t[2]', '<t t-call="web.report_layout"/>')
          (210, '/t/html/body/div/main/t', '<t t-out="0"/>')
          (4055, '/t/t', '<t t-call="web.html_container"/>')
          (4055, '/t/t/t/t[1]', '<t t-call="sale.report_saleorder_document" t-inner-content="True" t-options-lang="doc.partner_id.lang"/>')
          (4054, '/t/t', '<t t-call="web.external_layout"/>')
          (4054, '/t/t/div/table/tbody/t[4]/t[10]/tr[4]/td[2]/span', '<span t-if="line.product_id.image_sale_order" t-field="line.product_id.image_sale_order" t-options="{&quot;widget&quot;: &quot;image&quot;, &quot;class&quot;: &quot;img img-fluid&quot;, &quot;style&quot;: &quot;max-width: 50px; max-height: 50px; display: block; margin: auto;&quot;}"/>')
2026-02-23 15:47:20 WARNING server odoo.addons.base.models.ir_qweb:1809 Unknown directives or unused attributes: {'t-index'} in 4054
2026-02-23 15:47:20 WARNING server odoo.addons.base.models.ir_qweb:1809 Unknown directives or unused attributes: {'t-index'} in 4054
2026-02-23 15:47:20 ERROR server odoo.http:2831
Exception during request handling.
Traceback (most recent call last):
  File "/data/build/adhoc-cicd-odoo-odoo/odoo/addons/base/models/ir_qweb.py", line 756, in _render_iterall
    for item in frame.iterator:
                ^^^^^^^^^^^^^^
  File "<4054>", line 1960, in template_sale_report_saleorder_document_4054_t_call_0
AttributeError: 'product.product' object has no attribute 'image_sale_order'

The above exception was the direct cause of the following exception:

Traceback (most recent call last):
  File "/data/build/adhoc-cicd-odoo-odoo/odoo/http.py", line 2800, in __call__
    response = request._serve_db()
               ^^^^^^^^^^^^^^^^^^^
  File "/data/build/adhoc-cicd-odoo-odoo/odoo/http.py", line 2275, in _serve_db
    raise self._update_served_exception(exc)
  File "/data/build/adhoc-cicd-odoo-odoo/odoo/http.py", line 2273, in _serve_db
    return service_model.retrying(serve_func, env=self.env)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/data/build/adhoc-cicd-odoo-odoo/odoo/service/model.py", line 185, in retrying
    result = func()
             ^^^^^^
  File "/data/build/adhoc-cicd-odoo-odoo/odoo/http.py", line 2328, in _serve_ir_http
    response = self.dispatcher.dispatch(rule.endpoint, args)
               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/data/build/adhoc-cicd-odoo-odoo/odoo/http.py", line 2543, in dispatch
    result = self.request.registry['ir.http']._dispatch(endpoint)
             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/data/build/adhoc-cicd-odoo-odoo/odoo/addons/base/models/ir_http.py", line 355, in _dispatch
    result = endpoint(**request.params)
             ^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/data/build/adhoc-cicd-odoo-odoo/odoo/http.py", line 788, in route_wrapper
    result = endpoint(self, *args, **params_ok)
             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/data/build/adhoc-cicd-odoo-enterprise/web_studio/controllers/report.py", line 534, in get_report_html
    report_html = self._render_report(report, record_id)
                  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/data/build/adhoc-cicd-odoo-enterprise/web_studio/controllers/report.py", line 663, in _render_report
    return request.env['ir.actions.report'].with_context(studio=True)._render_qweb_html(report, [record_id] if record_id else [], {"studio": True})
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/data/build/adhoc-cicd-odoo-enterprise/web_studio/models/ir_actions_report.py", line 24, in _render_qweb_html
    return super(IrActionsReport, self)._render_qweb_html(report_ref, docids, data)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/data/build/adhoc-cicd-odoo-odoo/odoo/addons/base/models/ir_actions_report.py", line 1116, in _render_qweb_html
    return self._render_template(report.report_name, data), 'html'
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/data/build/adhoc-cicd-odoo-odoo/odoo/addons/base/models/ir_actions_report.py", line 789, in _render_template
    return view_obj._render_template(template, values).encode()
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/data/build/adhoc-cicd-odoo-odoo/addons/website/models/ir_ui_view.py", line 456, in _render_template
    return super()._render_template(template, values=values)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/data/build/adhoc-cicd-odoo-odoo/odoo/addons/base/models/ir_ui_view.py", line 2542, in _render_template
    return self.env['ir.qweb']._render(template, values)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/data/build/adhoc-cicd-odoo-enterprise/web_studio/models/ir_qweb.py", line 13, in _render
    return super(IrQweb, self.with_context(inherit_branding=True))._render(template, values, **options)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/data/build/adhoc-cicd-odoo-odoo/odoo/addons/base/models/ir_qweb.py", line 728, in _render
    return Markup(''.join(iterator))
                  ^^^^^^^^^^^^^^^^^
  File "/data/build/adhoc-cicd-odoo-odoo/odoo/addons/base/models/ir_qweb.py", line 756, in _render_iterall
    for item in frame.iterator:
                ^^^^^^^^^^^^^^
  File "<4054>", line 3482, in template_sale_report_saleorder_document_4054
  File "<4054>", line 3468, in template_sale_report_saleorder_document_4054_content
  File "/data/build/adhoc-cicd-odoo-odoo/odoo/addons/base/models/ir_qweb.py", line 619, in __str__
    self.html = ''.join(self.irQweb._render_iterall(
                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/data/build/adhoc-cicd-odoo-odoo/odoo/addons/base/models/ir_qweb.py", line 850, in _render_iterall
    raise QWebError(qweb_error_info) from error
odoo.addons.base.models.ir_qweb.QWebError: Error while rendering the template:
    AttributeError: 'product.product' object has no attribute 'image_sale_order'
    Template: sale.report_saleorder_document
    Reference: 4054
    Path: /t/t/div/table/tbody/t[4]/t[10]/tr[4]/td[2]/span
    Element: <span t-if="line.product_id.image_sale_order" t-field="line.product_id.image_sale_order" t-options="{&quot;widget&quot;: &quot;image&quot;, &quot;class&quot;: &quot;img img-fluid&quot;, &quot;style&quot;: &quot;max-width: 50px; max-height: 50px; display: block; margin: auto;&quot;}"/>
    From: (4055, '/t/t', '<t t-call="web.html_container"/>')
          (212, '/t/t[2]', '<t t-call="web.report_layout"/>')
          (210, '/t/html/body/div/main/t', '<t t-out="0"/>')
          (212, '/t/t[2]', '<t t-call="web.report_layout"/>')
          (210, '/t/html/body/div/main/t', '<t t-out="0"/>')
          (4055, '/t/t', '<t t-call="web.html_container"/>')
          (4055, '/t/t/t/t[1]', '<t t-call="sale.report_saleorder_document" t-inner-content="True" t-options-lang="doc.partner_id.lang"/>')
          (4054, '/t/t', '<t t-call="web.external_layout"/>')
          (4054, '/t/t/div/table/tbody/t[4]/t[10]/tr[4]/td[2]/span', '<span t-if="line.product_id.image_sale_order" t-field="line.product_id.image_sale_order" t-options="{&quot;widget&quot;: &quot;image&quot;, &quot;class&quot;: &quot;img img-fluid&quot;, &quot;style&quot;: &quot;max-width: 50px; max-height: 50px; display: block; margin: auto;&quot;}"/>')
2026-02-23 15:48:02 WARNING server odoo.addons.base.models.ir_qweb:1809 Unknown directives or unused attributes: {'t-index'} in 4054
2026-02-23 15:48:02 WARNING server odoo.addons.base.models.ir_qweb:1809 Unknown directives or unused attributes: {'t-index'} in 4054
2026-02-23 15:48:02 ERROR server odoo.http:2831
Exception during request handling.
Traceback (most recent call last):
  File "/data/build/adhoc-cicd-odoo-odoo/odoo/addons/base/models/ir_qweb.py", line 756, in _render_iterall
    for item in frame.iterator:
                ^^^^^^^^^^^^^^
  File "<4054>", line 1960, in template_sale_report_saleorder_document_4054_t_call_0
AttributeError: 'product.product' object has no attribute 'image_sale_order'

The above exception was the direct cause of the following exception:

Traceback (most recent call last):
  File "/data/build/adhoc-cicd-odoo-odoo/odoo/http.py", line 2800, in __call__
    response = request._serve_db()
               ^^^^^^^^^^^^^^^^^^^
  File "/data/build/adhoc-cicd-odoo-odoo/odoo/http.py", line 2275, in _serve_db
    raise self._update_served_exception(exc)
  File "/data/build/adhoc-cicd-odoo-odoo/odoo/http.py", line 2273, in _serve_db
    return service_model.retrying(serve_func, env=self.env)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/data/build/adhoc-cicd-odoo-odoo/odoo/service/model.py", line 185, in retrying
    result = func()
             ^^^^^^
  File "/data/build/adhoc-cicd-odoo-odoo/odoo/http.py", line 2328, in _serve_ir_http
    response = self.dispatcher.dispatch(rule.endpoint, args)
               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/data/build/adhoc-cicd-odoo-odoo/odoo/http.py", line 2543, in dispatch
    result = self.request.registry['ir.http']._dispatch(endpoint)
             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/data/build/adhoc-cicd-odoo-odoo/odoo/addons/base/models/ir_http.py", line 355, in _dispatch
    result = endpoint(**request.params)
             ^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/data/build/adhoc-cicd-odoo-odoo/odoo/http.py", line 788, in route_wrapper
    result = endpoint(self, *args, **params_ok)
             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/data/build/adhoc-cicd-odoo-enterprise/web_studio/controllers/report.py", line 715, in save_report
    report_html = self._render_report(report, record_id)
                  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/data/build/adhoc-cicd-odoo-enterprise/web_studio/controllers/report.py", line 663, in _render_report
    return request.env['ir.actions.report'].with_context(studio=True)._render_qweb_html(report, [record_id] if record_id else [], {"studio": True})
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/data/build/adhoc-cicd-odoo-enterprise/web_studio/models/ir_actions_report.py", line 24, in _render_qweb_html
    return super(IrActionsReport, self)._render_qweb_html(report_ref, docids, data)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/data/build/adhoc-cicd-odoo-odoo/odoo/addons/base/models/ir_actions_report.py", line 1116, in _render_qweb_html
    return self._render_template(report.report_name, data), 'html'
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/data/build/adhoc-cicd-odoo-odoo/odoo/addons/base/models/ir_actions_report.py", line 789, in _render_template
    return view_obj._render_template(template, values).encode()
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/data/build/adhoc-cicd-odoo-odoo/addons/website/models/ir_ui_view.py", line 456, in _render_template
    return super()._render_template(template, values=values)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/data/build/adhoc-cicd-odoo-odoo/odoo/addons/base/models/ir_ui_view.py", line 2542, in _render_template
    return self.env['ir.qweb']._render(template, values)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/data/build/adhoc-cicd-odoo-enterprise/web_studio/models/ir_qweb.py", line 13, in _render
    return super(IrQweb, self.with_context(inherit_branding=True))._render(template, values, **options)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/data/build/adhoc-cicd-odoo-odoo/odoo/addons/base/models/ir_qweb.py", line 728, in _render
    return Markup(''.join(iterator))
                  ^^^^^^^^^^^^^^^^^
  File "/data/build/adhoc-cicd-odoo-odoo/odoo/addons/base/models/ir_qweb.py", line 756, in _render_iterall
    for item in frame.iterator:
                ^^^^^^^^^^^^^^
  File "<4054>", line 3482, in template_sale_report_saleorder_document_4054
  File "<4054>", line 3468, in template_sale_report_saleorder_document_4054_content
  File "/data/build/adhoc-cicd-odoo-odoo/odoo/addons/base/models/ir_qweb.py", line 619, in __str__
    self.html = ''.join(self.irQweb._render_iterall(
                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/data/build/adhoc-cicd-odoo-odoo/odoo/addons/base/models/ir_qweb.py", line 850, in _render_iterall
    raise QWebError(qweb_error_info) from error
odoo.addons.base.models.ir_qweb.QWebError: Error while rendering the template:
    AttributeError: 'product.product' object has no attribute 'image_sale_order'
    Template: sale.report_saleorder_document
    Reference: 4054
    Path: /t/t/div/table/tbody/t[4]/t[10]/tr[4]/td[2]/span
    Element: <span t-if="line.product_id.image_sale_order" t-field="line.product_id.image_sale_order" t-options="{&quot;widget&quot;: &quot;image&quot;, &quot;class&quot;: &quot;img img-fluid&quot;, &quot;style&quot;: &quot;max-width: 50px; max-height: 50px; display: block; margin: auto;&quot;}"/>
    From: (4055, '/t/t', '<t t-call="web.html_container"/>')
          (212, '/t/t[2]', '<t t-call="web.report_layout"/>')
          (210, '/t/html/body/div/main/t', '<t t-out="0"/>')
          (212, '/t/t[2]', '<t t-call="web.report_layout"/>')
          (210, '/t/html/body/div/main/t', '<t t-out="0"/>')
          (4055, '/t/t', '<t t-call="web.html_container"/>')
          (4055, '/t/t/t/t[1]', '<t t-call="sale.report_saleorder_document" t-inner-content="True" t-options-lang="doc.partner_id.lang"/>')
          (4054, '/t/t', '<t t-call="web.external_layout"/>')
          (4054, '/t/t/div/table/tbody/t[4]/t[10]/tr[4]/td[2]/span', '<span t-if="line.product_id.image_sale_order" t-field="line.product_id.image_sale_order" t-options="{&quot;widget&quot;: &quot;image&quot;, &quot;class&quot;: &quot;img img-fluid&quot;, &quot;style&quot;: &quot;max-width: 50px; max-height: 50px; display: block; margin: auto;&quot;}"/>')
2026-02-23 15:48:02 ERROR server odoo.http:2831
Exception during request handling.
Traceback (most recent call last):
  File "/data/build/adhoc-cicd-odoo-odoo/odoo/addons/base/models/ir_qweb.py", line 756, in _render_iterall
    for item in frame.iterator:
                ^^^^^^^^^^^^^^
  File "<4054>", line 1960, in template_sale_report_saleorder_document_4054_t_call_0
AttributeError: 'product.product' object has no attribute 'image_sale_order'

The above exception was the direct cause of the following exception:

Traceback (most recent call last):
  File "/data/build/adhoc-cicd-odoo-odoo/odoo/http.py", line 2800, in __call__
    response = request._serve_db()
               ^^^^^^^^^^^^^^^^^^^
  File "/data/build/adhoc-cicd-odoo-odoo/odoo/http.py", line 2275, in _serve_db
    raise self._update_served_exception(exc)
  File "/data/build/adhoc-cicd-odoo-odoo/odoo/http.py", line 2273, in _serve_db
    return service_model.retrying(serve_func, env=self.env)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/data/build/adhoc-cicd-odoo-odoo/odoo/service/model.py", line 185, in retrying
    result = func()
             ^^^^^^
  File "/data/build/adhoc-cicd-odoo-odoo/odoo/http.py", line 2328, in _serve_ir_http
    response = self.dispatcher.dispatch(rule.endpoint, args)
               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/data/build/adhoc-cicd-odoo-odoo/odoo/http.py", line 2543, in dispatch
    result = self.request.registry['ir.http']._dispatch(endpoint)
             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/data/build/adhoc-cicd-odoo-odoo/odoo/addons/base/models/ir_http.py", line 355, in _dispatch
    result = endpoint(**request.params)
             ^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/data/build/adhoc-cicd-odoo-odoo/odoo/http.py", line 788, in route_wrapper
    result = endpoint(self, *args, **params_ok)
             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/data/build/adhoc-cicd-odoo-enterprise/web_studio/controllers/report.py", line 715, in save_report
    report_html = self._render_report(report, record_id)
                  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/data/build/adhoc-cicd-odoo-enterprise/web_studio/controllers/report.py", line 663, in _render_report
    return request.env['ir.actions.report'].with_context(studio=True)._render_qweb_html(report, [record_id] if record_id else [], {"studio": True})
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/data/build/adhoc-cicd-odoo-enterprise/web_studio/models/ir_actions_report.py", line 24, in _render_qweb_html
    return super(IrActionsReport, self)._render_qweb_html(report_ref, docids, data)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/data/build/adhoc-cicd-odoo-odoo/odoo/addons/base/models/ir_actions_report.py", line 1116, in _render_qweb_html
    return self._render_template(report.report_name, data), 'html'
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/data/build/adhoc-cicd-odoo-odoo/odoo/addons/base/models/ir_actions_report.py", line 789, in _render_template
    return view_obj._render_template(template, values).encode()
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/data/build/adhoc-cicd-odoo-odoo/addons/website/models/ir_ui_view.py", line 456, in _render_template
    return super()._render_template(template, values=values)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/data/build/adhoc-cicd-odoo-odoo/odoo/addons/base/models/ir_ui_view.py", line 2542, in _render_template
    return self.env['ir.qweb']._render(template, values)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/data/build/adhoc-cicd-odoo-enterprise/web_studio/models/ir_qweb.py", line 13, in _render
    return super(IrQweb, self.with_context(inherit_branding=True))._render(template, values, **options)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/data/build/adhoc-cicd-odoo-odoo/odoo/addons/base/models/ir_qweb.py", line 728, in _render
    return Markup(''.join(iterator))
                  ^^^^^^^^^^^^^^^^^
  File "/data/build/adhoc-cicd-odoo-odoo/odoo/addons/base/models/ir_qweb.py", line 756, in _render_iterall
    for item in frame.iterator:
                ^^^^^^^^^^^^^^
  File "<4054>", line 3482, in template_sale_report_saleorder_document_4054
  File "<4054>", line 3468, in template_sale_report_saleorder_document_4054_content
  File "/data/build/adhoc-cicd-odoo-odoo/odoo/addons/base/models/ir_qweb.py", line 619, in __str__
    self.html = ''.join(self.irQweb._render_iterall(
                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/data/build/adhoc-cicd-odoo-odoo/odoo/addons/base/models/ir_qweb.py", line 850, in _render_iterall
    raise QWebError(qweb_error_info) from error
odoo.addons.base.models.ir_qweb.QWebError: Error while rendering the template:
    AttributeError: 'product.product' object has no attribute 'image_sale_order'
    Template: sale.report_saleorder_document
    Reference: 4054
    Path: /t/t/div/table/tbody/t[4]/t[10]/tr[4]/td[2]/span
    Element: <span t-if="line.product_id.image_sale_order" t-field="line.product_id.image_sale_order" t-options="{&quot;widget&quot;: &quot;image&quot;, &quot;class&quot;: &quot;img img-fluid&quot;, &quot;style&quot;: &quot;max-width: 50px; max-height: 50px; display: block; margin: auto;&quot;}"/>
    From: (4055, '/t/t', '<t t-call="web.html_container"/>')
          (212, '/t/t[2]', '<t t-call="web.report_layout"/>')
          (212, '/t/t[2]', '<t t-call="web.report_layout"/>')
          (4055, '/t/t', '<t t-call="web.html_container"/>')
          (4055, '/t/t/t/t[1]', '<t t-call="sale.report_saleorder_document" t-inner-content="True" t-options-lang="doc.partner_id.lang"/>')
          (4054, '/t/t', '<t t-call="web.external_layout"/>')
          (4054, '/t/t/div/table/tbody/t[4]/t[10]/tr[4]/td[2]/span', '<span t-if="line.product_id.image_sale_order" t-field="line.product_id.image_sale_order" t-options="{&quot;widget&quot;: &quot;image&quot;, &quot;class&quot;: &quot;img img-fluid&quot;, &quot;style&quot;: &quot;max-width: 50px; max-height: 50px; display: block; margin: auto;&quot;}"/>')
2026-02-23 15:48:59 WARNING server odoo.addons.base.models.ir_qweb:2477 Found deprecated directive @t-raw="'\\n'" in template 875. Replace by @t-out, and explicitely wrap content in `Markup` if necessary (which likely is not the case)
2026-02-23 15:49:06 WARNING server odoo.addons.base.models.ir_qweb:1809 Unknown directives or unused attributes: {'t-index'} in 4054
2026-02-23 15:49:06 WARNING server odoo.addons.base.models.ir_qweb:1809 Unknown directives or unused attributes: {'t-index'} in 4054
2026-02-23 15:49:06 ERROR server odoo.http:2831
Exception during request handling.
Traceback (most recent call last):
  File "/data/build/adhoc-cicd-odoo-odoo/odoo/addons/base/models/ir_qweb.py", line 756, in _render_iterall
    for item in frame.iterator:
                ^^^^^^^^^^^^^^
  File "<4054>", line 1960, in template_sale_report_saleorder_document_4054_t_call_0
AttributeError: 'product.product' object has no attribute 'image_sale_order'

The above exception was the direct cause of the following exception:

Traceback (most recent call last):
  File "/data/build/adhoc-cicd-odoo-odoo/odoo/http.py", line 2800, in __call__
    response = request._serve_db()
               ^^^^^^^^^^^^^^^^^^^
  File "/data/build/adhoc-cicd-odoo-odoo/odoo/http.py", line 2275, in _serve_db
    raise self._update_served_exception(exc)
  File "/data/build/adhoc-cicd-odoo-odoo/odoo/http.py", line 2273, in _serve_db
    return service_model.retrying(serve_func, env=self.env)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/data/build/adhoc-cicd-odoo-odoo/odoo/service/model.py", line 185, in retrying
    result = func()
             ^^^^^^
  File "/data/build/adhoc-cicd-odoo-odoo/odoo/http.py", line 2328, in _serve_ir_http
    response = self.dispatcher.dispatch(rule.endpoint, args)
               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/data/build/adhoc-cicd-odoo-odoo/odoo/http.py", line 2543, in dispatch
    result = self.request.registry['ir.http']._dispatch(endpoint)
             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/data/build/adhoc-cicd-odoo-odoo/odoo/addons/base/models/ir_http.py", line 355, in _dispatch
    result = endpoint(**request.params)
             ^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/data/build/adhoc-cicd-odoo-odoo/odoo/http.py", line 788, in route_wrapper
    result = endpoint(self, *args, **params_ok)
             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/data/build/adhoc-cicd-odoo-enterprise/web_studio/controllers/report.py", line 715, in save_report
    report_html = self._render_report(report, record_id)
                  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/data/build/adhoc-cicd-odoo-enterprise/web_studio/controllers/report.py", line 663, in _render_report
    return request.env['ir.actions.report'].with_context(studio=True)._render_qweb_html(report, [record_id] if record_id else [], {"studio": True})
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/data/build/adhoc-cicd-odoo-enterprise/web_studio/models/ir_actions_report.py", line 24, in _render_qweb_html
    return super(IrActionsReport, self)._render_qweb_html(report_ref, docids, data)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/data/build/adhoc-cicd-odoo-odoo/odoo/addons/base/models/ir_actions_report.py", line 1116, in _render_qweb_html
    return self._render_template(report.report_name, data), 'html'
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/data/build/adhoc-cicd-odoo-odoo/odoo/addons/base/models/ir_actions_report.py", line 789, in _render_template
    return view_obj._render_template(template, values).encode()
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/data/build/adhoc-cicd-odoo-odoo/addons/website/models/ir_ui_view.py", line 456, in _render_template
    return super()._render_template(template, values=values)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/data/build/adhoc-cicd-odoo-odoo/odoo/addons/base/models/ir_ui_view.py", line 2542, in _render_template
    return self.env['ir.qweb']._render(template, values)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/data/build/adhoc-cicd-odoo-enterprise/web_studio/models/ir_qweb.py", line 13, in _render
    return super(IrQweb, self.with_context(inherit_branding=True))._render(template, values, **options)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/data/build/adhoc-cicd-odoo-odoo/odoo/addons/base/models/ir_qweb.py", line 728, in _render
    return Markup(''.join(iterator))
                  ^^^^^^^^^^^^^^^^^
  File "/data/build/adhoc-cicd-odoo-odoo/odoo/addons/base/models/ir_qweb.py", line 756, in _render_iterall
    for item in frame.iterator:
                ^^^^^^^^^^^^^^
  File "<4054>", line 3482, in template_sale_report_saleorder_document_4054
  File "<4054>", line 3468, in template_sale_report_saleorder_document_4054_content
  File "/data/build/adhoc-cicd-odoo-odoo/odoo/addons/base/models/ir_qweb.py", line 619, in __str__
    self.html = ''.join(self.irQweb._render_iterall(
                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/data/build/adhoc-cicd-odoo-odoo/odoo/addons/base/models/ir_qweb.py", line 850, in _render_iterall
    raise QWebError(qweb_error_info) from error
odoo.addons.base.models.ir_qweb.QWebError: Error while rendering the template:
    AttributeError: 'product.product' object has no attribute 'image_sale_order'
    Template: sale.report_saleorder_document
    Reference: 4054
    Path: /t/t/div/table/tbody/t[4]/t[10]/tr[4]/td[2]/span
    Element: <span t-if="line.product_id.image_sale_order" t-field="line.product_id.image_sale_order" t-options="{&quot;widget&quot;: &quot;image&quot;, &quot;class&quot;: &quot;img img-fluid&quot;, &quot;style&quot;: &quot;max-width: 50px; max-height: 50px; display: block; margin: auto;&quot;}"/>
    From: (4056, '/t/t', '<t t-call="sale.report_saleorder_raw"/>')
          (4055, '/t/t', '<t t-call="web.html_container"/>')
          (212, '/t/t[2]', '<t t-call="web.report_layout"/>')
          (210, '/t/html/body/div/main/t', '<t t-out="0"/>')
          (212, '/t/t[2]', '<t t-call="web.report_layout"/>')
          (210, '/t/html/body/div/main/t', '<t t-out="0"/>')
          (4055, '/t/t', '<t t-call="web.html_container"/>')
          (4055, '/t/t/t/t[1]', '<t t-call="sale.report_saleorder_document" t-inner-content="True" t-options-lang="doc.partner_id.lang"/>')
          (4054, '/t/t', '<t t-call="web.external_layout"/>')
          (4054, '/t/t/div/table/tbody/t[4]/t[10]/tr[4]/td[2]/span', '<span t-if="line.product_id.image_sale_order" t-field="line.product_id.image_sale_order" t-options="{&quot;widget&quot;: &quot;image&quot;, &quot;class&quot;: &quot;img img-fluid&quot;, &quot;style&quot;: &quot;max-width: 50px; max-height: 50px; display: block; margin: auto;&quot;}"/>')
2026-02-23 15:49:44 WARNING server odoo.addons.base.models.ir_qweb:1809 Unknown directives or unused attributes: {'t-index'} in 4054
2026-02-23 15:49:44 WARNING server odoo.addons.base.models.ir_qweb:1809 Unknown directives or unused attributes: {'t-index'} in 4054
2026-02-23 15:49:44 ERROR server odoo.http:2831
Exception during request handling.
Traceback (most recent call last):
  File "/data/build/adhoc-cicd-odoo-odoo/odoo/addons/base/models/ir_qweb.py", line 756, in _render_iterall
    for item in frame.iterator:
                ^^^^^^^^^^^^^^
  File "<4054>", line 1960, in template_sale_report_saleorder_document_4054_t_call_0
AttributeError: 'product.product' object has no attribute 'image_sale_order'

The above exception was the direct cause of the following exception:

Traceback (most recent call last):
  File "/data/build/adhoc-cicd-odoo-odoo/odoo/http.py", line 2800, in __call__
    response = request._serve_db()
               ^^^^^^^^^^^^^^^^^^^
  File "/data/build/adhoc-cicd-odoo-odoo/odoo/http.py", line 2275, in _serve_db
    raise self._update_served_exception(exc)
  File "/data/build/adhoc-cicd-odoo-odoo/odoo/http.py", line 2273, in _serve_db
    return service_model.retrying(serve_func, env=self.env)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/data/build/adhoc-cicd-odoo-odoo/odoo/service/model.py", line 185, in retrying
    result = func()
             ^^^^^^
  File "/data/build/adhoc-cicd-odoo-odoo/odoo/http.py", line 2328, in _serve_ir_http
    response = self.dispatcher.dispatch(rule.endpoint, args)
               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/data/build/adhoc-cicd-odoo-odoo/odoo/http.py", line 2543, in dispatch
    result = self.request.registry['ir.http']._dispatch(endpoint)
             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/data/build/adhoc-cicd-odoo-odoo/odoo/addons/base/models/ir_http.py", line 355, in _dispatch
    result = endpoint(**request.params)
             ^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/data/build/adhoc-cicd-odoo-odoo/odoo/http.py", line 788, in route_wrapper
    result = endpoint(self, *args, **params_ok)
             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/data/build/adhoc-cicd-odoo-enterprise/web_studio/controllers/report.py", line 715, in save_report
    report_html = self._render_report(report, record_id)
                  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/data/build/adhoc-cicd-odoo-enterprise/web_studio/controllers/report.py", line 663, in _render_report
    return request.env['ir.actions.report'].with_context(studio=True)._render_qweb_html(report, [record_id] if record_id else [], {"studio": True})
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/data/build/adhoc-cicd-odoo-enterprise/web_studio/models/ir_actions_report.py", line 24, in _render_qweb_html
    return super(IrActionsReport, self)._render_qweb_html(report_ref, docids, data)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/data/build/adhoc-cicd-odoo-odoo/odoo/addons/base/models/ir_actions_report.py", line 1116, in _render_qweb_html
    return self._render_template(report.report_name, data), 'html'
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/data/build/adhoc-cicd-odoo-odoo/odoo/addons/base/models/ir_actions_report.py", line 789, in _render_template
    return view_obj._render_template(template, values).encode()
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/data/build/adhoc-cicd-odoo-odoo/addons/website/models/ir_ui_view.py", line 456, in _render_template
    return super()._render_template(template, values=values)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/data/build/adhoc-cicd-odoo-odoo/odoo/addons/base/models/ir_ui_view.py", line 2542, in _render_template
    return self.env['ir.qweb']._render(template, values)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/data/build/adhoc-cicd-odoo-enterprise/web_studio/models/ir_qweb.py", line 13, in _render
    return super(IrQweb, self.with_context(inherit_branding=True))._render(template, values, **options)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/data/build/adhoc-cicd-odoo-odoo/odoo/addons/base/models/ir_qweb.py", line 728, in _render
    return Markup(''.join(iterator))
                  ^^^^^^^^^^^^^^^^^
  File "/data/build/adhoc-cicd-odoo-odoo/odoo/addons/base/models/ir_qweb.py", line 756, in _render_iterall
    for item in frame.iterator:
                ^^^^^^^^^^^^^^
  File "<4054>", line 3482, in template_sale_report_saleorder_document_4054
  File "<4054>", line 3468, in template_sale_report_saleorder_document_4054_content
  File "/data/build/adhoc-cicd-odoo-odoo/odoo/addons/base/models/ir_qweb.py", line 619, in __str__
    self.html = ''.join(self.irQweb._render_iterall(
                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/data/build/adhoc-cicd-odoo-odoo/odoo/addons/base/models/ir_qweb.py", line 850, in _render_iterall
    raise QWebError(qweb_error_info) from error
odoo.addons.base.models.ir_qweb.QWebError: Error while rendering the template:
    AttributeError: 'product.product' object has no attribute 'image_sale_order'
    Template: sale.report_saleorder_document
    Reference: 4054
    Path: /t/t/div/table/tbody/t[4]/t[10]/tr[4]/td[2]/span
    Element: <span t-if="line.product_id.image_sale_order" t-field="line.product_id.image_sale_order" t-options="{&quot;widget&quot;: &quot;image&quot;, &quot;class&quot;: &quot;img img-fluid&quot;, &quot;style&quot;: &quot;max-width: 50px; max-height: 50px; display: block; margin: auto;&quot;}"/>
    From: (4056, '/t/t', '<t t-call="sale.report_saleorder_raw"/>')
          (4055, '/t/t', '<t t-call="web.html_container"/>')
          (212, '/t/t[2]', '<t t-call="web.report_layout"/>')
          (210, '/t/html/body/div/main/t', '<t t-out="0"/>')
          (212, '/t/t[2]', '<t t-call="web.report_layout"/>')
          (210, '/t/html/body/div/main/t', '<t t-out="0"/>')
          (4055, '/t/t', '<t t-call="web.html_container"/>')
          (4055, '/t/t/t/t[1]', '<t t-call="sale.report_saleorder_document" t-inner-content="True" t-options-lang="doc.partner_id.lang"/>')
          (4054, '/t/t', '<t t-call="web.external_layout"/>')
          (4054, '/t/t/div/table/tbody/t[4]/t[10]/tr[4]/td[2]/span', '<span t-if="line.product_id.image_sale_order" t-field="line.product_id.image_sale_order" t-options="{&quot;widget&quot;: &quot;image&quot;, &quot;class&quot;: &quot;img img-fluid&quot;, &quot;style&quot;: &quot;max-width: 50px; max-height: 50px; display: block; margin: auto;&quot;}"/>')
2026-02-23 15:50:11 WARNING server odoo.addons.base.models.ir_qweb:1809 Unknown directives or unused attributes: {'t-index'} in 4054
2026-02-23 15:50:11 WARNING server odoo.addons.base.models.ir_qweb:1809 Unknown directives or unused attributes: {'t-index'} in 4054
2026-02-23 15:50:11 ERROR server odoo.http:2831
Exception during request handling.
Traceback (most recent call last):
  File "/data/build/adhoc-cicd-odoo-odoo/odoo/addons/base/models/ir_qweb.py", line 756, in _render_iterall
    for item in frame.iterator:
                ^^^^^^^^^^^^^^
  File "<4054>", line 1960, in template_sale_report_saleorder_document_4054_t_call_0
AttributeError: 'product.product' object has no attribute 'image_sale_order'

The above exception was the direct cause of the following exception:

Traceback (most recent call last):
  File "/data/build/adhoc-cicd-odoo-odoo/odoo/http.py", line 2800, in __call__
    response = request._serve_db()
               ^^^^^^^^^^^^^^^^^^^
  File "/data/build/adhoc-cicd-odoo-odoo/odoo/http.py", line 2275, in _serve_db
    raise self._update_served_exception(exc)
  File "/data/build/adhoc-cicd-odoo-odoo/odoo/http.py", line 2273, in _serve_db
    return service_model.retrying(serve_func, env=self.env)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/data/build/adhoc-cicd-odoo-odoo/odoo/service/model.py", line 185, in retrying
    result = func()
             ^^^^^^
  File "/data/build/adhoc-cicd-odoo-odoo/odoo/http.py", line 2328, in _serve_ir_http
    response = self.dispatcher.dispatch(rule.endpoint, args)
               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/data/build/adhoc-cicd-odoo-odoo/odoo/http.py", line 2543, in dispatch
    result = self.request.registry['ir.http']._dispatch(endpoint)
             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/data/build/adhoc-cicd-odoo-odoo/odoo/addons/base/models/ir_http.py", line 355, in _dispatch
    result = endpoint(**request.params)
             ^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/data/build/adhoc-cicd-odoo-odoo/odoo/http.py", line 788, in route_wrapper
    result = endpoint(self, *args, **params_ok)
             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/data/build/adhoc-cicd-odoo-enterprise/web_studio/controllers/report.py", line 534, in get_report_html
    report_html = self._render_report(report, record_id)
                  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/data/build/adhoc-cicd-odoo-enterprise/web_studio/controllers/report.py", line 663, in _render_report
    return request.env['ir.actions.report'].with_context(studio=True)._render_qweb_html(report, [record_id] if record_id else [], {"studio": True})
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/data/build/adhoc-cicd-odoo-enterprise/web_studio/models/ir_actions_report.py", line 24, in _render_qweb_html
    return super(IrActionsReport, self)._render_qweb_html(report_ref, docids, data)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/data/build/adhoc-cicd-odoo-odoo/odoo/addons/base/models/ir_actions_report.py", line 1116, in _render_qweb_html
    return self._render_template(report.report_name, data), 'html'
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/data/build/adhoc-cicd-odoo-odoo/odoo/addons/base/models/ir_actions_report.py", line 789, in _render_template
    return view_obj._render_template(template, values).encode()
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/data/build/adhoc-cicd-odoo-odoo/addons/website/models/ir_ui_view.py", line 456, in _render_template
    return super()._render_template(template, values=values)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/data/build/adhoc-cicd-odoo-odoo/odoo/addons/base/models/ir_ui_view.py", line 2542, in _render_template
    return self.env['ir.qweb']._render(template, values)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/data/build/adhoc-cicd-odoo-enterprise/web_studio/models/ir_qweb.py", line 13, in _render
    return super(IrQweb, self.with_context(inherit_branding=True))._render(template, values, **options)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/data/build/adhoc-cicd-odoo-odoo/odoo/addons/base/models/ir_qweb.py", line 728, in _render
    return Markup(''.join(iterator))
                  ^^^^^^^^^^^^^^^^^
  File "/data/build/adhoc-cicd-odoo-odoo/odoo/addons/base/models/ir_qweb.py", line 756, in _render_iterall
    for item in frame.iterator:
                ^^^^^^^^^^^^^^
  File "<4054>", line 3482, in template_sale_report_saleorder_document_4054
  File "<4054>", line 3468, in template_sale_report_saleorder_document_4054_content
  File "/data/build/adhoc-cicd-odoo-odoo/odoo/addons/base/models/ir_qweb.py", line 619, in __str__
    self.html = ''.join(self.irQweb._render_iterall(
                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/data/build/adhoc-cicd-odoo-odoo/odoo/addons/base/models/ir_qweb.py", line 850, in _render_iterall
    raise QWebError(qweb_error_info) from error
odoo.addons.base.models.ir_qweb.QWebError: Error while rendering the template:
    AttributeError: 'product.product' object has no attribute 'image_sale_order'
    Template: sale.report_saleorder_document
    Reference: 4054
    Path: /t/t/div/table/tbody/t[4]/t[10]/tr[4]/td[2]/span
    Element: <span t-if="line.product_id.image_sale_order" t-field="line.product_id.image_sale_order" t-options="{&quot;widget&quot;: &quot;image&quot;, &quot;class&quot;: &quot;img img-fluid&quot;, &quot;style&quot;: &quot;max-width: 50px; max-height: 50px; display: block; margin: auto;&quot;}"/>
    From: (4056, '/t/t', '<t t-call="sale.report_saleorder_raw"/>')
          (4055, '/t/t', '<t t-call="web.html_container"/>')
          (212, '/t/t[2]', '<t t-call="web.report_layout"/>')
          (210, '/t/html/body/div/main/t', '<t t-out="0"/>')
          (212, '/t/t[2]', '<t t-call="web.report_layout"/>')
          (210, '/t/html/body/div/main/t', '<t t-out="0"/>')
          (4055, '/t/t', '<t t-call="web.html_container"/>')
          (4055, '/t/t/t/t[1]', '<t t-call="sale.report_saleorder_document" t-inner-content="True" t-options-lang="doc.partner_id.lang"/>')
          (4054, '/t/t', '<t t-call="web.external_layout"/>')
          (4054, '/t/t/div/table/tbody/t[4]/t[10]/tr[4]/td[2]/span', '<span t-if="line.product_id.image_sale_order" t-field="line.product_id.image_sale_order" t-options="{&quot;widget&quot;: &quot;image&quot;, &quot;class&quot;: &quot;img img-fluid&quot;, &quot;style&quot;: &quot;max-width: 50px; max-height: 50px; display: block; margin: auto;&quot;}"/>')
2026-02-23 15:50:54 WARNING server odoo.addons.base.models.ir_qweb:1809 Unknown directives or unused attributes: {'t-index'} in 4054
2026-02-23 15:50:54 WARNING server odoo.addons.base.models.ir_qweb:1809 Unknown directives or unused attributes: {'t-index'} in 4054
2026-02-23 15:50:54 ERROR server odoo.http:2831
Exception during request handling.
Traceback (most recent call last):
  File "/data/build/adhoc-cicd-odoo-odoo/odoo/addons/base/models/ir_qweb.py", line 756, in _render_iterall
    for item in frame.iterator:
                ^^^^^^^^^^^^^^
  File "<4054>", line 1960, in template_sale_report_saleorder_document_4054_t_call_0
AttributeError: 'product.product' object has no attribute 'image_sale_order'

The above exception was the direct cause of the following exception:

Traceback (most recent call last):
  File "/data/build/adhoc-cicd-odoo-odoo/odoo/http.py", line 2800, in __call__
    response = request._serve_db()
               ^^^^^^^^^^^^^^^^^^^
  File "/data/build/adhoc-cicd-odoo-odoo/odoo/http.py", line 2275, in _serve_db
    raise self._update_served_exception(exc)
  File "/data/build/adhoc-cicd-odoo-odoo/odoo/http.py", line 2273, in _serve_db
    return service_model.retrying(serve_func, env=self.env)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/data/build/adhoc-cicd-odoo-odoo/odoo/service/model.py", line 185, in retrying
    result = func()
             ^^^^^^
  File "/data/build/adhoc-cicd-odoo-odoo/odoo/http.py", line 2328, in _serve_ir_http
    response = self.dispatcher.dispatch(rule.endpoint, args)
               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/data/build/adhoc-cicd-odoo-odoo/odoo/http.py", line 2543, in dispatch
    result = self.request.registry['ir.http']._dispatch(endpoint)
             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/data/build/adhoc-cicd-odoo-odoo/odoo/addons/base/models/ir_http.py", line 355, in _dispatch
    result = endpoint(**request.params)
             ^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/data/build/adhoc-cicd-odoo-odoo/odoo/http.py", line 788, in route_wrapper
    result = endpoint(self, *args, **params_ok)
             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/data/build/adhoc-cicd-odoo-enterprise/web_studio/controllers/report.py", line 715, in save_report
    report_html = self._render_report(report, record_id)
                  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/data/build/adhoc-cicd-odoo-enterprise/web_studio/controllers/report.py", line 663, in _render_report
    return request.env['ir.actions.report'].with_context(studio=True)._render_qweb_html(report, [record_id] if record_id else [], {"studio": True})
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/data/build/adhoc-cicd-odoo-enterprise/web_studio/models/ir_actions_report.py", line 24, in _render_qweb_html
    return super(IrActionsReport, self)._render_qweb_html(report_ref, docids, data)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/data/build/adhoc-cicd-odoo-odoo/odoo/addons/base/models/ir_actions_report.py", line 1116, in _render_qweb_html
    return self._render_template(report.report_name, data), 'html'
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/data/build/adhoc-cicd-odoo-odoo/odoo/addons/base/models/ir_actions_report.py", line 789, in _render_template
    return view_obj._render_template(template, values).encode()
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/data/build/adhoc-cicd-odoo-odoo/addons/website/models/ir_ui_view.py", line 456, in _render_template
    return super()._render_template(template, values=values)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/data/build/adhoc-cicd-odoo-odoo/odoo/addons/base/models/ir_ui_view.py", line 2542, in _render_template
    return self.env['ir.qweb']._render(template, values)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/data/build/adhoc-cicd-odoo-enterprise/web_studio/models/ir_qweb.py", line 13, in _render
    return super(IrQweb, self.with_context(inherit_branding=True))._render(template, values, **options)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/data/build/adhoc-cicd-odoo-odoo/odoo/addons/base/models/ir_qweb.py", line 728, in _render
    return Markup(''.join(iterator))
                  ^^^^^^^^^^^^^^^^^
  File "/data/build/adhoc-cicd-odoo-odoo/odoo/addons/base/models/ir_qweb.py", line 756, in _render_iterall
    for item in frame.iterator:
                ^^^^^^^^^^^^^^
  File "<4054>", line 3482, in template_sale_report_saleorder_document_4054
  File "<4054>", line 3468, in template_sale_report_saleorder_document_4054_content
  File "/data/build/adhoc-cicd-odoo-odoo/odoo/addons/base/models/ir_qweb.py", line 619, in __str__
    self.html = ''.join(self.irQweb._render_iterall(
                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/data/build/adhoc-cicd-odoo-odoo/odoo/addons/base/models/ir_qweb.py", line 850, in _render_iterall
    raise QWebError(qweb_error_info) from error
odoo.addons.base.models.ir_qweb.QWebError: Error while rendering the template:
    AttributeError: 'product.product' object has no attribute 'image_sale_order'
    Template: sale.report_saleorder_document
    Reference: 4054
    Path: /t/t/div/table/tbody/t[4]/t[10]/tr[4]/td[2]/span
    Element: <span t-if="line.product_id.image_sale_order" t-field="line.product_id.image_sale_order" t-options="{&quot;widget&quot;: &quot;image&quot;, &quot;class&quot;: &quot;img img-fluid&quot;, &quot;style&quot;: &quot;max-width: 50px; max-height: 50px; display: block; margin: auto;&quot;}"/>
    From: (4056, '/t/t', '<t t-call="sale.report_saleorder_raw"/>')
          (4055, '/t/t', '<t t-call="web.html_container"/>')
          (212, '/t/t[2]', '<t t-call="web.report_layout"/>')
          (210, '/t/html/body/div/main/t', '<t t-out="0"/>')
          (212, '/t/t[2]', '<t t-call="web.report_layout"/>')
          (210, '/t/html/body/div/main/t', '<t t-out="0"/>')
          (4055, '/t/t', '<t t-call="web.html_container"/>')
          (4055, '/t/t/t/t[1]', '<t t-call="sale.report_saleorder_document" t-inner-content="True" t-options-lang="doc.partner_id.lang"/>')
          (4054, '/t/t', '<t t-call="web.external_layout"/>')
          (4054, '/t/t/div/table/tbody/t[4]/t[10]/tr[4]/td[2]/span', '<span t-if="line.product_id.image_sale_order" t-field="line.product_id.image_sale_order" t-options="{&quot;widget&quot;: &quot;image&quot;, &quot;class&quot;: &quot;img img-fluid&quot;, &quot;style&quot;: &quot;max-width: 50px; max-height: 50px; display: block; margin: auto;&quot;}"/>')
2026-02-23 15:51:14 WARNING server odoo.addons.base.models.ir_qweb:1809 Unknown directives or unused attributes: {'t-index'} in 4054
2026-02-23 15:51:14 WARNING server odoo.addons.base.models.ir_qweb:1809 Unknown directives or unused attributes: {'t-index'} in 4054
2026-02-23 15:51:14 ERROR server odoo.http:2831
Exception during request handling.
Traceback (most recent call last):
  File "/data/build/adhoc-cicd-odoo-odoo/odoo/addons/base/models/ir_qweb.py", line 756, in _render_iterall
    for item in frame.iterator:
                ^^^^^^^^^^^^^^
  File "<4054>", line 1960, in template_sale_report_saleorder_document_4054_t_call_0
AttributeError: 'product.product' object has no attribute 'image_sale_order'

The above exception was the direct cause of the following exception:

Traceback (most recent call last):
  File "/data/build/adhoc-cicd-odoo-odoo/odoo/http.py", line 2800, in __call__
    response = request._serve_db()
               ^^^^^^^^^^^^^^^^^^^
  File "/data/build/adhoc-cicd-odoo-odoo/odoo/http.py", line 2275, in _serve_db
    raise self._update_served_exception(exc)
  File "/data/build/adhoc-cicd-odoo-odoo/odoo/http.py", line 2273, in _serve_db
    return service_model.retrying(serve_func, env=self.env)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/data/build/adhoc-cicd-odoo-odoo/odoo/service/model.py", line 185, in retrying
    result = func()
             ^^^^^^
  File "/data/build/adhoc-cicd-odoo-odoo/odoo/http.py", line 2328, in _serve_ir_http
    response = self.dispatcher.dispatch(rule.endpoint, args)
               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/data/build/adhoc-cicd-odoo-odoo/odoo/http.py", line 2543, in dispatch
    result = self.request.registry['ir.http']._dispatch(endpoint)
             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/data/build/adhoc-cicd-odoo-odoo/odoo/addons/base/models/ir_http.py", line 355, in _dispatch
    result = endpoint(**request.params)
             ^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/data/build/adhoc-cicd-odoo-odoo/odoo/http.py", line 788, in route_wrapper
    result = endpoint(self, *args, **params_ok)
             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/data/build/adhoc-cicd-odoo-enterprise/web_studio/controllers/report.py", line 715, in save_report
    report_html = self._render_report(report, record_id)
                  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/data/build/adhoc-cicd-odoo-enterprise/web_studio/controllers/report.py", line 663, in _render_report
    return request.env['ir.actions.report'].with_context(studio=True)._render_qweb_html(report, [record_id] if record_id else [], {"studio": True})
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/data/build/adhoc-cicd-odoo-enterprise/web_studio/models/ir_actions_report.py", line 24, in _render_qweb_html
    return super(IrActionsReport, self)._render_qweb_html(report_ref, docids, data)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/data/build/adhoc-cicd-odoo-odoo/odoo/addons/base/models/ir_actions_report.py", line 1116, in _render_qweb_html
    return self._render_template(report.report_name, data), 'html'
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/data/build/adhoc-cicd-odoo-odoo/odoo/addons/base/models/ir_actions_report.py", line 789, in _render_template
    return view_obj._render_template(template, values).encode()
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/data/build/adhoc-cicd-odoo-odoo/addons/website/models/ir_ui_view.py", line 456, in _render_template
    return super()._render_template(template, values=values)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/data/build/adhoc-cicd-odoo-odoo/odoo/addons/base/models/ir_ui_view.py", line 2542, in _render_template
    return self.env['ir.qweb']._render(template, values)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/data/build/adhoc-cicd-odoo-enterprise/web_studio/models/ir_qweb.py", line 13, in _render
    return super(IrQweb, self.with_context(inherit_branding=True))._render(template, values, **options)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/data/build/adhoc-cicd-odoo-odoo/odoo/addons/base/models/ir_qweb.py", line 728, in _render
    return Markup(''.join(iterator))
                  ^^^^^^^^^^^^^^^^^
  File "/data/build/adhoc-cicd-odoo-odoo/odoo/addons/base/models/ir_qweb.py", line 756, in _render_iterall
    for item in frame.iterator:
                ^^^^^^^^^^^^^^
  File "<4054>", line 3482, in template_sale_report_saleorder_document_4054
  File "<4054>", line 3468, in template_sale_report_saleorder_document_4054_content
  File "/data/build/adhoc-cicd-odoo-odoo/odoo/addons/base/models/ir_qweb.py", line 619, in __str__
    self.html = ''.join(self.irQweb._render_iterall(
                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/data/build/adhoc-cicd-odoo-odoo/odoo/addons/base/models/ir_qweb.py", line 850, in _render_iterall
    raise QWebError(qweb_error_info) from error
odoo.addons.base.models.ir_qweb.QWebError: Error while rendering the template:
    AttributeError: 'product.product' object has no attribute 'image_sale_order'
    Template: sale.report_saleorder_document
    Reference: 4054
    Path: /t/t/div/table/tbody/t[4]/t[10]/tr[4]/td[2]/span
    Element: <span t-if="line.product_id.image_sale_order" t-field="line.product_id.image_sale_order" t-options="{&quot;widget&quot;: &quot;image&quot;, &quot;class&quot;: &quot;img img-fluid&quot;, &quot;style&quot;: &quot;max-width: 50px; max-height: 50px; display: block; margin: auto;&quot;}"/>
    From: (4056, '/t/t', '<t t-call="sale.report_saleorder_raw"/>')
          (4055, '/t/t', '<t t-call="web.html_container"/>')
          (212, '/t/t[2]', '<t t-call="web.report_layout"/>')
          (210, '/t/html/body/div/main/t', '<t t-out="0"/>')
          (212, '/t/t[2]', '<t t-call="web.report_layout"/>')
          (210, '/t/html/body/div/main/t', '<t t-out="0"/>')
          (4055, '/t/t', '<t t-call="web.html_container"/>')
          (4055, '/t/t/t/t[1]', '<t t-call="sale.report_saleorder_document" t-inner-content="True" t-options-lang="doc.partner_id.lang"/>')
          (4054, '/t/t', '<t t-call="web.external_layout"/>')
          (4054, '/t/t/div/table/tbody/t[4]/t[10]/tr[4]/td[2]/span', '<span t-if="line.product_id.image_sale_order" t-field="line.product_id.image_sale_order" t-options="{&quot;widget&quot;: &quot;image&quot;, &quot;class&quot;: &quot;img img-fluid&quot;, &quot;style&quot;: &quot;max-width: 50px; max-height: 50px; display: block; margin: auto;&quot;}"/>')
2026-02-23 15:52:26 ERROR server odoo.http:2831
Exception during request handling.
Traceback (most recent call last):
  File "/data/build/adhoc-cicd-odoo-odoo/odoo/http.py", line 2800, in __call__
    response = request._serve_db()
               ^^^^^^^^^^^^^^^^^^^
  File "/data/build/adhoc-cicd-odoo-odoo/odoo/http.py", line 2275, in _serve_db
    raise self._update_served_exception(exc)
  File "/data/build/adhoc-cicd-odoo-odoo/odoo/http.py", line 2273, in _serve_db
    return service_model.retrying(serve_func, env=self.env)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/data/build/adhoc-cicd-odoo-odoo/odoo/service/model.py", line 185, in retrying
    result = func()
             ^^^^^^
  File "/data/build/adhoc-cicd-odoo-odoo/odoo/http.py", line 2328, in _serve_ir_http
    response = self.dispatcher.dispatch(rule.endpoint, args)
               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/data/build/adhoc-cicd-odoo-odoo/odoo/http.py", line 2543, in dispatch
    result = self.request.registry['ir.http']._dispatch(endpoint)
             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/data/build/adhoc-cicd-odoo-odoo/odoo/addons/base/models/ir_http.py", line 355, in _dispatch
    result = endpoint(**request.params)
             ^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/data/build/adhoc-cicd-odoo-odoo/odoo/http.py", line 788, in route_wrapper
    result = endpoint(self, *args, **params_ok)
             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/data/build/adhoc-cicd-odoo-enterprise/web_studio/controllers/report.py", line 699, in save_report
    self._handle_view_changes(view, changes)
  File "/data/build/adhoc-cicd-odoo-enterprise/web_studio/controllers/report.py", line 787, in _handle_view_changes
    studio_view_arch = differ.diff_xpath(etree.tostring(original), etree.tostring(new_arch))
                       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/data/build/adhoc-cicd-odoo-enterprise/web_studio/controllers/keyed_xml_differ.py", line 469, in diff_xpath
    diff = self.diff(old, new)
           ^^^^^^^^^^^^^^^^^^^
  File "/data/build/adhoc-cicd-odoo-enterprise/web_studio/controllers/keyed_xml_differ.py", line 465, in diff
    return self.analyzer.diff(old, new)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/data/build/adhoc-cicd-odoo-enterprise/web_studio/controllers/keyed_xml_differ.py", line 290, in diff
    self._diff_nodes(self.map_id_to_node_old[new_tree.get(DIFF_ATTRIBUTE)], new_tree)
  File "/data/build/adhoc-cicd-odoo-enterprise/web_studio/controllers/keyed_xml_differ.py", line 370, in _diff_nodes
    self._diff_nodes(self.map_id_to_node_old[nid], new_child)
  File "/data/build/adhoc-cicd-odoo-enterprise/web_studio/controllers/keyed_xml_differ.py", line 370, in _diff_nodes
    self._diff_nodes(self.map_id_to_node_old[nid], new_child)
  File "/data/build/adhoc-cicd-odoo-enterprise/web_studio/controllers/keyed_xml_differ.py", line 384, in _diff_nodes
    self._diff_nodes(self.map_id_to_node_old[nid], new_child)
                     ~~~~~~~~~~~~~~~~~~~~~~~^^^^^
KeyError: '257'
2026-02-23 15:53:38 WARNING server odoo.addons.base.models.ir_qweb:2477 Found deprecated directive @t-raw="'\\n'" in template 875. Replace by @t-out, and explicitely wrap content in `Markup` if necessary (which likely is not the case)
2026-02-23 15:54:30 ERROR server odoo.http:2831
Exception during request handling.
Traceback (most recent call last):
  File "/data/build/adhoc-cicd-odoo-odoo/odoo/addons/base/models/ir_qweb.py", line 756, in _render_iterall
    for item in frame.iterator:
                ^^^^^^^^^^^^^^
  File "<226>", line 62, in template_web_basic_layout_226_t_call_0
AttributeError: 'sale.order' object has no attribute 'date'

The above exception was the direct cause of the following exception:

Traceback (most recent call last):
  File "/data/build/adhoc-cicd-odoo-odoo/odoo/http.py", line 2800, in __call__
    response = request._serve_db()
               ^^^^^^^^^^^^^^^^^^^
  File "/data/build/adhoc-cicd-odoo-odoo/odoo/http.py", line 2275, in _serve_db
    raise self._update_served_exception(exc)
  File "/data/build/adhoc-cicd-odoo-odoo/odoo/http.py", line 2273, in _serve_db
    return service_model.retrying(serve_func, env=self.env)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/data/build/adhoc-cicd-odoo-odoo/odoo/service/model.py", line 185, in retrying
    result = func()
             ^^^^^^
  File "/data/build/adhoc-cicd-odoo-odoo/odoo/http.py", line 2328, in _serve_ir_http
    response = self.dispatcher.dispatch(rule.endpoint, args)
               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/data/build/adhoc-cicd-odoo-odoo/odoo/http.py", line 2543, in dispatch
    result = self.request.registry['ir.http']._dispatch(endpoint)
             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/data/build/adhoc-cicd-odoo-odoo/odoo/addons/base/models/ir_http.py", line 355, in _dispatch
    result = endpoint(**request.params)
             ^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/data/build/adhoc-cicd-odoo-odoo/odoo/http.py", line 788, in route_wrapper
    result = endpoint(self, *args, **params_ok)
             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/data/build/adhoc-cicd-odoo-enterprise/web_studio/controllers/report.py", line 715, in save_report
    report_html = self._render_report(report, record_id)
                  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/data/build/adhoc-cicd-odoo-enterprise/web_studio/controllers/report.py", line 663, in _render_report
    return request.env['ir.actions.report'].with_context(studio=True)._render_qweb_html(report, [record_id] if record_id else [], {"studio": True})
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/data/build/adhoc-cicd-odoo-enterprise/web_studio/models/ir_actions_report.py", line 24, in _render_qweb_html
    return super(IrActionsReport, self)._render_qweb_html(report_ref, docids, data)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/data/build/adhoc-cicd-odoo-odoo/odoo/addons/base/models/ir_actions_report.py", line 1116, in _render_qweb_html
    return self._render_template(report.report_name, data), 'html'
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/data/build/adhoc-cicd-odoo-odoo/odoo/addons/base/models/ir_actions_report.py", line 789, in _render_template
    return view_obj._render_template(template, values).encode()
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/data/build/adhoc-cicd-odoo-odoo/addons/website/models/ir_ui_view.py", line 456, in _render_template
    return super()._render_template(template, values=values)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/data/build/adhoc-cicd-odoo-odoo/odoo/addons/base/models/ir_ui_view.py", line 2542, in _render_template
    return self.env['ir.qweb']._render(template, values)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/data/build/adhoc-cicd-odoo-enterprise/web_studio/models/ir_qweb.py", line 13, in _render
    return super(IrQweb, self.with_context(inherit_branding=True))._render(template, values, **options)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/data/build/adhoc-cicd-odoo-odoo/odoo/addons/base/models/ir_qweb.py", line 728, in _render
    return Markup(''.join(iterator))
                  ^^^^^^^^^^^^^^^^^
  File "/data/build/adhoc-cicd-odoo-odoo/odoo/addons/base/models/ir_qweb.py", line 756, in _render_iterall
    for item in frame.iterator:
                ^^^^^^^^^^^^^^
  File "<226>", line 95, in template_web_basic_layout_226
  File "<226>", line 81, in template_web_basic_layout_226_content
  File "/data/build/adhoc-cicd-odoo-odoo/odoo/addons/base/models/ir_qweb.py", line 619, in __str__
    self.html = ''.join(self.irQweb._render_iterall(
                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/data/build/adhoc-cicd-odoo-odoo/odoo/addons/base/models/ir_qweb.py", line 850, in _render_iterall
    raise QWebError(qweb_error_info) from error
odoo.addons.base.models.ir_qweb.QWebError: Error while rendering the template:
    AttributeError: 'sale.order' object has no attribute 'date'
    Template: web.basic_layout
    Reference: 226
    Path: /t/t/div/t[3]
    Element: <t t-out="o.date"/>
    From: (6210, '/t/t/t', '<t t-call="web.basic_layout"/>')
          (226, '/t/t', '<t t-call="web.html_container"/>')
          (226, '/t/t/div/t[3]', '<t t-out="o.date"/>')
2026-02-23 15:58:37 WARNING server odoo.addons.base.models.ir_qweb:2477 Found deprecated directive @t-raw="'\\n'" in template 875. Replace by @t-out, and explicitely wrap content in `Markup` if necessary (which likely is not the case)
2026-02-23 16:47:46 WARNING server odoo.addons.l10n_uy_edi.models.l10n_uy_edi_document:648
An error was found when synchronizing vendor bills
2026-02-23 16:47:46 WARNING server odoo.addons.l10n_uy_edi.models.l10n_uy_edi_document:650 Company Name: "Muebleria UY", Company ID: (18), Errors: "We found an error while consulting a notification Incomplete Data to connect to UCFE Provider on company Muebleria UY: Please complete the UCFE data to test the connection: UCFE Provider WS Password, UCFE Provider Commerce code, UCFE Provider Terminal code, UCFE Provider Inbox URL, UCFE Provider Query URL."
2026-02-23 17:47:10 WARNING server odoo.addons.l10n_uy_edi.models.l10n_uy_edi_document:648
An error was found when synchronizing vendor bills
2026-02-23 17:47:10 WARNING server odoo.addons.l10n_uy_edi.models.l10n_uy_edi_document:650 Company Name: "Muebleria UY", Company ID: (18), Errors: "We found an error while consulting a notification Incomplete Data to connect to UCFE Provider on company Muebleria UY: Please complete the UCFE data to test the connection: UCFE Provider WS Password, UCFE Provider Commerce code, UCFE Provider Terminal code, UCFE Provider Inbox URL, UCFE Provider Query URL."
2026-02-23 18:00:01 INFO runbot Kill build 50101-19-0