コンテンツへスキップ
メニュー
この質問にフラグが付けられました
1 返信
931 ビュー

Hello all,

In my journey to deploy an Odoo 18 CE Server from GitHub and configuring Apache Web Server 2.4.62 with HTTPS support, I tested the installation, and all the system works well even printing a PDF invoice or a sale order.

The OS : FreeBSD 14.2-RELEASE-p1 GENERIC amd64

The wkhtmltopdf version : wkhtmltopdf 0.12.6 (with patched qt).

But I get an issue with wkhtmltopdf failing with error : [Invalid Operation Wkhtmltopdf failed (error code: -10)], when I try to print some reports or options, like the examples below :


  1. Apps --> Sales --> Technical guide :

2025-01-29 15:32:29,548 71602 WARNING odoo18ce odoo.addons.base.models.ir_actions_report: Wkhtmltopdf failed (error code: -10). Message:   

2025-01-29 15:32:29,549 71602 WARNING odoo18ce odoo.addons.web.controllers.report: Error while generating report base.report_irmodulereference  

Traceback (most recent call last):

 File "/usr/local/odoo_erp/odoo18ce/odoo18ce_server/addons/web/controllers/report.py", line 120, in report_download

   response = self.report_routes(reportname, docids=docids, converter=converter, context=context)

              ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

 File "/usr/local/odoo_erp/odoo18ce/odoo18ce_server/odoo/http.py", line 727, in route_wrapper

   result = endpoint(self, *args, **params_ok)

            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

 File "/usr/local/odoo_erp/odoo18ce/odoo18ce_server/addons/web/controllers/report.py", line 42, in report_routes

   pdf = report.with_context(context)._render_qweb_pdf(reportname, docids, data=data)[0]

         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

 File "/usr/local/odoo_erp/odoo18ce/odoo18ce_server/odoo/addons/base/models/ir_actions_report.py", line 1007, in _render_qweb_pdf

   collected_streams, report_type = self._pre_render_qweb_pdf(report_ref, res_ids=res_ids, data=data)

                                    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

 File "/usr/local/odoo_erp/odoo18ce/odoo18ce_server/addons/account/models/ir_actions_report.py", line 74, in _pre_render_qweb_pdf

   return super()._pre_render_qweb_pdf(report_ref, res_ids=res_ids, data=data)

          ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

 File "/usr/local/odoo_erp/odoo18ce/odoo18ce_server/odoo/addons/base/models/ir_actions_report.py", line 998, in _pre_render_qweb_pdf

   return self._render_qweb_pdf_prepare_streams(report_ref, data, res_ids=res_ids), 'pdf'

          ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

 File "/usr/local/odoo_erp/odoo18ce/odoo18ce_server/addons/sale_pdf_quote_builder/models/ir_actions_report.py", line 17, in _render_qweb_pdf_prepare_streams

   result = super()._render_qweb_pdf_prepare_streams(report_ref, data, res_ids=res_ids)

            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

 File "/usr/local/odoo_erp/odoo18ce/odoo18ce_server/addons/purchase/models/ir_actions_report.py", line 12, in _render_qweb_pdf_prepare_streams

   collected_streams = super()._render_qweb_pdf_prepare_streams(report_ref, data, res_ids=res_ids)

                       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

 File "/usr/local/odoo_erp/odoo18ce/odoo18ce_server/addons/hr_expense/models/ir_actions_report.py", line 12, in _render_qweb_pdf_prepare_streams

   res = super()._render_qweb_pdf_prepare_streams(report_ref, data, res_ids)

         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

 File "/usr/local/odoo_erp/odoo18ce/odoo18ce_server/addons/account_edi/models/ir_actions_report.py", line 14, in _render_qweb_pdf_prepare_streams

   collected_streams = super()._render_qweb_pdf_prepare_streams(report_ref, data, res_ids=res_ids)

                       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

 File "/usr/local/odoo_erp/odoo18ce/odoo18ce_server/addons/account/models/ir_actions_report.py", line 22, in _render_qweb_pdf_prepare_streams

   return super()._render_qweb_pdf_prepare_streams(report_ref, data, res_ids=res_ids)

          ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

 File "/usr/local/odoo_erp/odoo18ce/odoo18ce_server/odoo/addons/base/models/ir_actions_report.py", line 860, in _render_qweb_pdf_prepare_streams

   pdf_content = self._run_wkhtmltopdf(

                 ^^^^^^^^^^^^^^^^^^^^^^

 File "/usr/local/odoo_erp/odoo18ce/odoo18ce_server/odoo/addons/base/models/ir_actions_report.py", line 611, in _run_wkhtmltopdf

   raise UserError(message)

odoo.exceptions.UserError: Wkhtmltopdf failed (error code: -10). Message:


   2.  Employees --> Administrator --> Settings --> Badge ID --> Print Badge :

2025-01-29 15:40:57,360 71761 WARNING odoo18ce odoo.addons.base.models.ir_actions_report: Wkhtmltopdf failed (error code: -10). Message:   

2025-01-29 15:40:57,360 71761 WARNING odoo18ce odoo.addons.web.controllers.report: Error while generating report hr.print_employee_badge  

Traceback (most recent call last):

 File "/usr/local/odoo_erp/odoo18ce/odoo18ce_server/addons/web/controllers/report.py", line 120, in report_download

   response = self.report_routes(reportname, docids=docids, converter=converter, context=context)

              ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

 File "/usr/local/odoo_erp/odoo18ce/odoo18ce_server/odoo/http.py", line 727, in route_wrapper

   result = endpoint(self, *args, **params_ok)

            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

 File "/usr/local/odoo_erp/odoo18ce/odoo18ce_server/addons/web/controllers/report.py", line 42, in report_routes

   pdf = report.with_context(context)._render_qweb_pdf(reportname, docids, data=data)[0]

         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

 File "/usr/local/odoo_erp/odoo18ce/odoo18ce_server/odoo/addons/base/models/ir_actions_report.py", line 1007, in _render_qweb_pdf

   collected_streams, report_type = self._pre_render_qweb_pdf(report_ref, res_ids=res_ids, data=data)

                                    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

 File "/usr/local/odoo_erp/odoo18ce/odoo18ce_server/addons/account/models/ir_actions_report.py", line 74, in _pre_render_qweb_pdf

   return super()._pre_render_qweb_pdf(report_ref, res_ids=res_ids, data=data)

          ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

 File "/usr/local/odoo_erp/odoo18ce/odoo18ce_server/odoo/addons/base/models/ir_actions_report.py", line 998, in _pre_render_qweb_pdf

   return self._render_qweb_pdf_prepare_streams(report_ref, data, res_ids=res_ids), 'pdf'

          ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

 File "/usr/local/odoo_erp/odoo18ce/odoo18ce_server/addons/sale_pdf_quote_builder/models/ir_actions_report.py", line 17, in _render_qweb_pdf_prepare_streams

   result = super()._render_qweb_pdf_prepare_streams(report_ref, data, res_ids=res_ids)

            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

 File "/usr/local/odoo_erp/odoo18ce/odoo18ce_server/addons/purchase/models/ir_actions_report.py", line 12, in _render_qweb_pdf_prepare_streams

   collected_streams = super()._render_qweb_pdf_prepare_streams(report_ref, data, res_ids=res_ids)

                       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

 File "/usr/local/odoo_erp/odoo18ce/odoo18ce_server/addons/hr_expense/models/ir_actions_report.py", line 12, in _render_qweb_pdf_prepare_streams

   res = super()._render_qweb_pdf_prepare_streams(report_ref, data, res_ids)

         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

 File "/usr/local/odoo_erp/odoo18ce/odoo18ce_server/addons/account_edi/models/ir_actions_report.py", line 14, in _render_qweb_pdf_prepare_streams

   collected_streams = super()._render_qweb_pdf_prepare_streams(report_ref, data, res_ids=res_ids)

                       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

 File "/usr/local/odoo_erp/odoo18ce/odoo18ce_server/addons/account/models/ir_actions_report.py", line 22, in _render_qweb_pdf_prepare_streams

   return super()._render_qweb_pdf_prepare_streams(report_ref, data, res_ids=res_ids)

          ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

 File "/usr/local/odoo_erp/odoo18ce/odoo18ce_server/odoo/addons/base/models/ir_actions_report.py", line 860, in _render_qweb_pdf_prepare_streams

   pdf_content = self._run_wkhtmltopdf(

                 ^^^^^^^^^^^^^^^^^^^^^^

 File "/usr/local/odoo_erp/odoo18ce/odoo18ce_server/odoo/addons/base/models/ir_actions_report.py", line 611, in _run_wkhtmltopdf

   raise UserError(message)

odoo.exceptions.UserError: Wkhtmltopdf failed (error code: -10). Message:


    3. Products --> Product - XYZ --> Print Labels :

2025-01-29 18:26:03,015 60086 WARNING odoo18ce odoo.addons.base.models.ir_actions_report: Wkhtmltopdf failed (error code: -10). Message:   

2025-01-29 18:26:03,016 60086 WARNING odoo18ce odoo.addons.web.controllers.report: Error while generating report product.report_producttemplatelabel2x7  

Traceback (most recent call last):

 File "/usr/local/odoo_erp/odoo18ce/odoo18ce_server/addons/web/controllers/report.py", line 127, in report_download

   response = self.report_routes(reportname, converter=converter, context=context, **data)

              ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

 File "/usr/local/odoo_erp/odoo18ce/odoo18ce_server/odoo/http.py", line 727, in route_wrapper

   result = endpoint(self, *args, **params_ok)

            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

 File "/usr/local/odoo_erp/odoo18ce/odoo18ce_server/addons/web/controllers/report.py", line 42, in report_routes

   pdf = report.with_context(context)._render_qweb_pdf(reportname, docids, data=data)[0]

         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

 File "/usr/local/odoo_erp/odoo18ce/odoo18ce_server/odoo/addons/base/models/ir_actions_report.py", line 1007, in _render_qweb_pdf

   collected_streams, report_type = self._pre_render_qweb_pdf(report_ref, res_ids=res_ids, data=data)

                                    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

 File "/usr/local/odoo_erp/odoo18ce/odoo18ce_server/addons/account/models/ir_actions_report.py", line 74, in _pre_render_qweb_pdf

   return super()._pre_render_qweb_pdf(report_ref, res_ids=res_ids, data=data)

          ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

 File "/usr/local/odoo_erp/odoo18ce/odoo18ce_server/odoo/addons/base/models/ir_actions_report.py", line 998, in _pre_render_qweb_pdf

   return self._render_qweb_pdf_prepare_streams(report_ref, data, res_ids=res_ids), 'pdf'

          ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

 File "/usr/local/odoo_erp/odoo18ce/odoo18ce_server/addons/sale_pdf_quote_builder/models/ir_actions_report.py", line 17, in _render_qweb_pdf_prepare_streams

   result = super()._render_qweb_pdf_prepare_streams(report_ref, data, res_ids=res_ids)

            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

 File "/usr/local/odoo_erp/odoo18ce/odoo18ce_server/addons/purchase/models/ir_actions_report.py", line 12, in _render_qweb_pdf_prepare_streams

   collected_streams = super()._render_qweb_pdf_prepare_streams(report_ref, data, res_ids=res_ids)

                       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

 File "/usr/local/odoo_erp/odoo18ce/odoo18ce_server/addons/hr_expense/models/ir_actions_report.py", line 12, in _render_qweb_pdf_prepare_streams

   res = super()._render_qweb_pdf_prepare_streams(report_ref, data, res_ids)

         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

 File "/usr/local/odoo_erp/odoo18ce/odoo18ce_server/addons/account_edi/models/ir_actions_report.py", line 14, in _render_qweb_pdf_prepare_streams

   collected_streams = super()._render_qweb_pdf_prepare_streams(report_ref, data, res_ids=res_ids)

                       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

 File "/usr/local/odoo_erp/odoo18ce/odoo18ce_server/addons/account/models/ir_actions_report.py", line 22, in _render_qweb_pdf_prepare_streams

   return super()._render_qweb_pdf_prepare_streams(report_ref, data, res_ids=res_ids)

          ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

 File "/usr/local/odoo_erp/odoo18ce/odoo18ce_server/odoo/addons/base/models/ir_actions_report.py", line 860, in _render_qweb_pdf_prepare_streams

   pdf_content = self._run_wkhtmltopdf(

                 ^^^^^^^^^^^^^^^^^^^^^^

 File "/usr/local/odoo_erp/odoo18ce/odoo18ce_server/odoo/addons/base/models/ir_actions_report.py", line 611, in _run_wkhtmltopdf

   raise UserError(message)

odoo.exceptions.UserError: Wkhtmltopdf failed (error code: -10). Message:


Web browser console error output :

Uncaught (in promise) RPC_ERROR: Odoo Server Error

    RPCError https://www.odoo18ce.itlinker.local/web/assets/3862aff/web.assets_web.min.js:875

web.assets_web.min.js:3129:338 ..............


アバター
破棄
著作者

To test the reporting engine on Odoo, I tried the creation of a QWeb-based PDF report, to see if I can change some parameters to get past the problem of the error : "UserError odoo.exceptions.UserError Wkhtmltopdf failed (error code : -10)", I have this behavior from the report :
* The QWeb template with "<t t-call="web.external_layout">" : the report is printed without error.
* The QWeb template with "<t t-call="web.internal_layout">" : the report throws the described error.

著作者 最善の回答
The solution to overcomes the error UserError odoo.exceptions.UserError Wkhtmltopdf failed (error code : -10), is to set up and install a CentOS 7 version of wkhtmltopdf with all requirements in linux mode for FreeBSD.

Information for other users on FreeBSD Operating System having the same issue :

Thanks to everyone.

アバター
破棄
著作者

The problem this time, wkhtmltopdf throws another error: "Cannot open an empty file" from the reports mentioned above, and besides other documents cannot be printed at all, the case of an invoice from a POS session. And the issue persists even after installing a version of wkhtmltopdf related to Rocky Linux 9.5 with all the requirements in linux mode for FreeBSD.

関連投稿 返信 ビュー 活動
0
3月 25
789
2
7月 24
3757
1
5月 24
1857
2
2月 24
3077
0
6月 22
2175