[FIX] viin_ai_chat: tour menu xmlid typo (legacy cleanup)
Tour tour_c2_ux_newbie_onboarding searched for an Apps tile with
data-menu-xmlid='viin_ai_base.menu_root_viin_ai', but the actual
xmlid declared in viin_ai_base/views/menus.xml is 'menu_root_ai'.
Mismatch surfaced as a tour failure on every install — pre-existing
legacy typo (not caused by this campaign).
Plan §"Quy tắc fix legacy errors/warnings" allows root-cause fixes
in cluster viin_ai_*; this is a 1-character correction with zero
behavioural change beyond letting the tour find its target.
| Subbuilds | Name | State | Detail |
|---|---|---|---|
| Build 381254 | Check the quality with Pylint: from test_lint to test_pylint 13m | Failed | Log |
| Build 381255 | At install tests: from account to website_twitter 124m | Succeed | Log |
| Build 381256 | Post install tests: step install all modules 64m | Succeed | Log |
| Build 381257 | Post install tests: from account to payment_alipay 153m | Failed | Log |
| Build 381258 | Post install tests: from payment_aps to test_viin_web_cohort 184m | Succeed | Log |
| Build 381259 | Post install tests: from test_website to to_website_apps_store 79m | Succeed | Log |
| Build 381260 | Post install tests: from to_website_apps_store_loc to viin_estimate_sale 84m | Failed | Log |
| Build 381261 | Post install tests: from viin_event_checkin_website to viin_project_gantt 39m | Succeed | Log |
| Build 381262 | Post install tests: from viin_project_progress to website_twitter 49m | Failed | Log |
| Build 381263 | Test install all modules without demo data: from account to website_twitter 54m | Succeed | Log |
| Create Date | Level | Message |
|---|---|---|
| 05/02/2026 01:05:44 | INFO |
Updated repository Viindoo-odoo
|
| 05/02/2026 01:05:44 | INFO |
Updated repository Viindoo-tvtmaaddons
|
| 05/02/2026 01:05:44 | INFO |
Updated repository Viindoo-erponline-enterprise
|
| 05/02/2026 01:05:44 | INFO |
Updated repository Viindoo-branding
|
| 05/02/2026 01:05:44 | INFO |
Cloned repository Viindoo-ai
|
| 05/02/2026 01:20:07 | ERROR |
Subbuild # 381254:
odoo.addons.test_pylint.tests.test_eslint: FAIL: TestESLint.test_eslint
Traceback (most recent call last):
File "/data/build/Viindoo-tvtmaaddons-17.0/test_pylint/tests/test_eslint.py", line 67, in test_eslint
self.assertEqual(process.returncode, 0, msg=f"""
AssertionError: 1 != 0 :
stdout:
/data/build/rb-7c32844-221676/viin_brain/static/tests/components/floating_toolbar_focus_tests.js
47:19 error Replace `⏎············buttons.length·>=·10,⏎············`expected·≥·10·toolbar·buttons,·got·${buttons.length}`⏎········` with `buttons.length·>=·10,·`expected·≥·10·toolbar·buttons,·got·${buttons.length}`` prettier/prettier
96:46 error Replace `⏎················`.o_brain_floating_toolbar·button[title="${title}"]`⏎············` with ``.o_brain_floating_toolbar·button[title="${title}"]`` prettier/prettier
/data/build/rb-7c32844-221676/viin_brain_account_reports/static/src/embed_report_lazy_loader.js
40:3 error Insert `··` prettier/prettier
41:1 error Replace `····` with `········` prettier/prettier
42:1 error Insert `····` prettier/prettier
43:1 error Replace `······` with `············` prettier/prettier
44:1 error Replace `········` with `················` prettier/prettier
45:9 error Insert `········` prettier/prettier
46:1 error Insert `··········` prettier/prettier
47:1 error Replace `············` with `························` prettier/prettier
48:1 error Replace `··········}ms`,` with `····················}ms`` prettier/prettier
49:1 error Replace `········` with `················` prettier/prettier
50:1 error Insert `········` prettier/prettier
51:7 error Insert `······` prettier/prettier
52:1 error Replace `······` with `············` prettier/prettier
53:1 error Insert `········` prettier/prettier
54:1 error Replace `········` with `················` prettier/prettier
55:1 error Replace `········` with `················` prettier/prettier
56:9 error Insert `········` prettier/prettier
57:1 error Replace `······},` with `············}` prettier/prettier
58:1 error Replace `····` with `········` prettier/prettier
59:1 error Insert `··` prettier/prettier
60:3 error Insert `··` prettier/prettier
68:3 error Insert `··` prettier/prettier
69:3 error Insert `··` prettier/prettier
70:1 error Replace `····` with `········` prettier/prettier
71:1 error Replace `····` with `········` prettier/prettier
72:1 error Insert `····` prettier/prettier
73:5 error Insert `····` prettier/prettier
74:1 error Replace `··` with `····` prettier/prettier
75:1 error Insert `··` prettier/prettier
79:3 error Insert `··` prettier/prettier
80:1 error Insert `····` prettier/prettier
81:1 error Insert `··` prettier/prettier
82:5 error Insert `····` prettier/prettier
83:1 error Insert `····` prettier/prettier
84:1 error Replace `····console.error(⏎······"[viin_brain_account_reports]·lazy·bundle·load·failed·(block)",⏎······err,` with `········console.error("[viin_brain_account_reports]·lazy·bundle·load·failed·(block)",·err);` prettier/prettier
87:5 error Replace `);` with `}` prettier/prettier
88:3 error Delete `}⏎` prettier/prettier
90:1 error Replace `··` with `····` prettier/prettier
91:1 error Insert `··` prettier/prettier
92:1 error Replace `··` with `····` prettier/prettier
93:1 error Insert `··` prettier/prettier
106:3 error Insert `··` prettier/prettier
107:1 error Insert `··` prettier/prettier
108:1 error Replace `····(el)·=>·el.dataset.staticMount·!==·"editor",` with `········(el)·=>·el.dataset.staticMount·!==·"editor"` prettier/prettier
109:1 error Insert `··` prettier/prettier
110:1 error Insert `··` prettier/prettier
111:1 error Replace `····` with `········` prettier/prettier
112:3 error Insert `··` prettier/prettier
113:1 error Insert `··` prettier/prettier
114:1 error Replace `····` with `········` prettier/prettier
115:1 error Replace `····` with `········` prettier/prettier
116:5 error Insert `····` prettier/prettier
117:1 error Replace `····` with `········` prettier/prettier
118:1 error Replace `······` with `············` prettier/prettier
119:5 error Insert `····` prettier/prettier
120:1 error Replace `····` with `········` prettier/prettier
121:3 error Insert `··` prettier/prettier
122:1 error Insert `··` prettier/prettier
123:5 error Insert `····` prettier/prettier
124:1 error Replace `······` with `············` prettier/prettier
125:1 error Insert `········` prettier/prettier
126:11 error Insert `··········` prettier/prettier
127:1 error Replace `··········` with `····················` prettier/prettier
128:9 error Insert `········` prettier/prettier
129:1 error Insert `······` prettier/prettier
130:5 error Insert `····` prettier/prettier
131:1 error Replace `····{·rootMargin:·ROOT_MARGIN·},` with `········{·rootMargin:·ROOT_MARGIN·}` prettier/prettier
132:1 error Insert `··` prettier/prettier
133:1 error Replace `··` with `····` prettier/prettier
134:5 error Insert `····` prettier/prettier
135:1 error Insert `··` prettier/prettier
143:3 error Insert `··` prettier/prettier
149:1 error Insert `··` prettier/prettier
151:3 error Replace `document.addEventListener(⏎····"DOMContentLoaded",⏎····()·=>·observeReportBlocks(document),` with `··document.addEventListener("DOMContentLoaded",·()·=>·observeReportBlocks(document),·{` prettier/prettier
154:5 error Replace `{·once:·true·}` with `····once:·true` prettier/prettier
155:3 error Insert `··}` prettier/prettier
/data/build/rb-7c32844-221676/viin_brain_account_reports/static/src/slash_commands.js
32:3 error Insert `··` prettier/prettier
33:5 error Insert `····` prettier/prettier
34:1 error Insert `····` prettier/prettier
35:1 error Replace `······` with `············` prettier/prettier
36:1 error Insert `········` prettier/prettier
37:1 error Replace `········` with `················` prettier/prettier
38:1 error Insert `········` prettier/prettier
39:9 error Insert `········` prettier/prettier
40:1 error Replace `········` with `················` prettier/prettier
41:1 error Insert `··········` prettier/prettier
42:13 error Insert `············` prettier/prettier
43:1 error Replace `··········}ms`,` with `····················}ms`` prettier/prettier
44:1 error Replace `········` with `················` prettier/prettier
45:1 error Insert `········` prettier/prettier
46:7 error Insert `······` prettier/prettier
47:1 error Insert `······` prettier/prettier
48:1 error Replace `········` with `················` prettier/prettier
49:1 error Replace `········` with `················` prettier/prettier
50:7 error Replace `},` with `······}` prettier/prettier
51:5 error Insert `····` prettier/prettier
52:3 error Insert `··` prettier/prettier
53:1 error Insert `··` prettier/prettier
59:3 error Insert `··` prettier/prettier
60:5 error Insert `····` prettier/prettier
61:1 error Replace `····(c)·=>·({·"<":·"<",·">":·">",·"&":·"&",·'"':·"""·})[c],` with `········(c)·=>·({·"<":·"<",·">":·">",·"&":·"&",·'"':·"""·}[c])` prettier/prettier
62:1 error Insert `··` prettier/prettier
66:1 error Insert `··` prettier/prettier
67:5 error Insert `····` prettier/prettier
68:1 error Insert `··` prettier/prettier
69:3 error Replace `return·(⏎····"brain-report-"·+⏎····Date.now().toString(36)·+⏎····Math.random().toString(36).slice(2,·6)⏎··` with `··return·"brain-report-"·+·Date.now().toString(36)·+·Math.random().toString(36).slice(2,·6` prettier/prettier
77:3 error Insert `··` prettier/prettier
78:1 error Insert `····` prettier/prettier
79:3 error Insert `··` prettier/prettier
80:1 error Insert `··` prettier/prettier
81:3 error Insert `··` prettier/prettier
82:1 error Replace `····` with `········` prettier/prettier
83:3 error Insert `··` prettier/prettier
84:1 error Replace `··` with `····` prettier/prettier
85:1 error Insert `··` prettier/prettier
86:1 error Replace `··` with `····` prettier/prettier
87:1 error Insert `··` prettier/prettier
88:3 error Insert `··` prettier/prettier
91:34 error Replace `⏎··snapshotId,⏎··capturedByName,⏎··capturedAt,⏎··reportId,⏎` with `·snapshotId,·capturedByName,·capturedAt,·reportId·` prettier/prettier
97:3 error Replace `const·reportUrl·=⏎···` with `··const·reportUrl·=` prettier/prettier
99:1 error Replace `··` with `····` prettier/prettier
100:1 error Insert `····` prettier/prettier
101:7 error Replace `"Viewers·see·the·same·data·regardless·of·their·own·ACL.",` with `······"Viewers·see·the·same·data·regardless·of·their·own·ACL."` prettier/prettier
102:1 error Replace `··` with `····` prettier/prettier
103:1 error Insert `··` prettier/prettier
104:3 error Insert `··` prettier/prettier
105:1 error Replace `····` with `········` prettier/prettier
106:1 error Insert `····` prettier/prettier
107:3 error Insert `··` prettier/prettier
108:1 error Insert `····` prettier/prettier
109:1 error Insert `····` prettier/prettier
110:1 error Replace `····` with `········` prettier/prettier
111:1 error Replace `····` with `········` prettier/prettier
112:1 error Replace `····` with `········` prettier/prettier
113:1 error Insert `····` prettier/prettier
114:5 error Insert `····` prettier/prettier
115:1 error Insert `····` prettier/prettier
116:5 error Insert `····` prettier/prettier
117:1 error Replace `··` with `····` prettier/prettier
121:3 error Insert `··` prettier/prettier
122:1 error Replace `··` with `····` prettier/prettier
123:1 error Insert `··` prettier/prettier
124:3 error Insert `··` prettier/prettier
125:1 error Replace `··` with `····` prettier/prettier
126:1 error Insert `··` prettier/prettier
127:3 error Insert `··` prettier/prettier
129:1 error Insert `··` prettier/prettier
130:1 error Replace `····` with `········` prettier/prettier
131:1 error Insert `····` prettier/prettier
132:1 error Replace `····` with `········` prettier/prettier
133:1 error Replace `····` with `········` prettier/prettier
134:1 error Replace `··` with `····` prettier/prettier
135:1 error Insert `··` prettier/prettier
136:3 error Insert `··` prettier/prettier
137:1 error Replace `··` with `····` prettier/prettier
138:1 error Insert `··` prettier/prettier
139:1 error Replace `··` with `····` prettier/prettier
140:1 error Insert `··` prettier/prettier
141:3 error Insert `··` prettier/prettier
142:1 error Insert `····` prettier/prettier
143:5 error Insert `····` prettier/prettier
144:1 error Replace `····` with `········` prettier/prettier
145:1 error Insert `····` prettier/prettier
146:1 error Replace `····` with `········` prettier/prettier
147:1 error Insert `····` prettier/prettier
148:5 error Insert `····` prettier/prettier
149:1 error Replace `····` with `········` prettier/prettier
150:5 error Insert `····` prettier/prettier
151:1 error Replace `····` with `········` prettier/prettier
152:1 error Replace `····` with `········` prettier/prettier
153:5 error Insert `····` prettier/prettier
154:1 error Insert `····` prettier/prettier
155:1 error Insert `····` prettier/prettier
156:3 error Insert `··` prettier/prettier
162:3 error Insert `··` prettier/prettier
163:1 error Insert `····` prettier/prettier
164:1 error Replace `······` with `············` prettier/prettier
165:1 error Replace `······:·wysiwyg.odooEditor·&&⏎········wysiwyg.odooEditor.options·&&⏎·······` with `············:·wysiwyg.odooEditor·&&·wysiwyg.odooEditor.options·&&` prettier/prettier
168:1 error Insert `··` prettier/prettier
169:1 error Replace `····` with `········` prettier/prettier
170:3 error Insert `··` prettier/prettier
172:1 error Replace `··const·bodyEl·=·document.querySelector(⏎····".o_brain_editor_body_edit[data-page-id]",⏎··` with `····const·bodyEl·=·document.querySelector(".o_brain_editor_body_edit[data-page-id]"` prettier/prettier
175:1 error Insert `··` prettier/prettier
176:3 error Insert `··` prettier/prettier
177:1 error Replace `····` with `········` prettier/prettier
178:3 error Insert `··` prettier/prettier
180:1 error Replace `··` with `····` prettier/prettier
181:3 error Insert `··` prettier/prettier
182:1 error Replace `··` with `····` prettier/prettier
183:1 error Insert `··` prettier/prettier
184:3 error Insert `··` prettier/prettier
185:1 error Insert `····` prettier/prettier
186:3 error Insert `··` prettier/prettier
187:1 error Replace `····env.services.notification.add(⏎······_t("Failed·to·load·report·editor·—·please·refresh."),` with `········env.services.notification.add(_t("Failed·to·load·report·editor·—·please·refresh."),·{` prettier/prettier
189:1 error Replace `······{·type:·"danger"·}` with `············type:·"danger"` prettier/prettier
190:1 error Replace `····` with `········}` prettier/prettier
191:1 error Insert `····` prettier/prettier
192:5 error Replace `console.error(⏎······"[viin_brain_account_reports]·lazy·bundle·failed·(slash·command)",⏎······err,` with `····console.error("[viin_brain_account_reports]·lazy·bundle·failed·(slash·command)",·err);` prettier/prettier
195:5 error Delete `);⏎` prettier/prettier
197:3 error Insert `··` prettier/prettier
199:1 error Replace `··const·{·EmbedReportPicker·}·=⏎···` with `····const·{·EmbedReportPicker·}·=` prettier/prettier
202:3 error Insert `··` prettier/prettier
203:1 error Replace `····` with `········` prettier/prettier
204:1 error Insert `······` prettier/prettier
205:1 error Replace `······` with `············` prettier/prettier
206:1 error Replace `······` with `············` prettier/prettier
207:1 error Replace `········result·=·await·env.services.rpc(⏎··········"/viin_brain_account_reports/embed/capture",` with `················result·=·await·env.services.rpc("/viin_brain_account_reports/embed/capture",·{` prettier/prettier
209:9 error Delete `··{⏎` prettier/prettier
211:1 error Replace `············` with `····················` prettier/prettier
212:1 error Insert `········` prettier/prettier
213:1 error Replace `············` with `····················` prettier/prettier
214:1 error Insert `········` prettier/prettier
215:11 error Replace `},⏎········` with `······}` prettier/prettier
217:1 error Insert `······` prettier/prettier
218:1 error Replace `········env.services.notification.add(⏎··········(err·&&·err.message)·||·_t("Capture·failed"),` with `················env.services.notification.add((err·&&·err.message)·||·_t("Capture·failed"),·{` prettier/prettier
220:9 error Delete `··{⏎` prettier/prettier
222:1 error Replace `··········},` with `················});` prettier/prettier
223:9 error Delete `);⏎` prettier/prettier
225:1 error Replace `······` with `············` prettier/prettier
226:1 error Insert `······` prettier/prettier
227:1 error Replace `········` with `················` prettier/prettier
228:9 error Insert `········` prettier/prettier
229:1 error Replace `········` with `················` prettier/prettier
230:7 error Insert `······` prettier/prettier
231:1 error Replace `······const·capturedByName·=⏎·······` with `············const·capturedByName·=` prettier/prettier
233:7 error Insert `······` prettier/prettier
234:1 error Replace `········` with `················` prettier/prettier
235:9 error Insert `········` prettier/prettier
236:1 error Replace `········` with `················` prettier/prettier
237:1 error Insert `········` prettier/prettier
238:1 error Replace `········` with `················` prettier/prettier
239:1 error Replace `········` with `················` prettier/prettier
240:1 error Insert `········` prettier/prettier
241:1 error Replace `······` with `············` prettier/prettier
242:1 error Insert `······` prettier/prettier
243:1 error Insert `····` prettier/prettier
244:5 error Insert `····` prettier/prettier
245:1 error Insert `··` prettier/prettier
250:3 error Insert `··` prettier/prettier
251:1 error Insert `··` prettier/prettier
252:3 error Replace `description:⏎···` with `··description:` prettier/prettier
254:3 error Insert `··` prettier/prettier
255:1 error Insert `··` prettier/prettier
256:3 error Insert `··` prettier/prettier
261:3 error Insert `··` prettier/prettier
262:1 error Insert `··` prettier/prettier
✖ 248 problems (248 errors, 0 warnings)
248 errors and 0 warnings potentially fixable with the `--fix` option.
Perhaps you might benefit from installing the tooling found at:
https://github.com/odoo/odoo/wiki/Javascript-coding-guidelines#use-a-linter
stderr:
|
| 05/02/2026 01:20:07 | ERROR |
Subbuild # 381254:
odoo.addons.test_pylint.tests.test_flake8: FAIL: TestFlake8.test_flake8
Traceback (most recent call last):
File "/data/build/Viindoo-tvtmaaddons-17.0/test_pylint/tests/test_flake8.py", line 91, in test_flake8
self.fail("flake8 test failed:\n" + (b"\n" + out + b"\n" + err).decode('utf-8').strip())
AssertionError: flake8 test failed:
/data/build/rb-7c32844-221676/viin_brain/tests/test_perf_large_vault.py:34:1: E402 module level import not at top of file
/data/build/rb-7c32844-221676/viin_ai_agent/tests/test_sql_template.py:156:9: F841 local variable 'p_visible' is assigned to but never used
/data/build/rb-7c32844-221676/viin_ai_chat/models/mail_compose_message.py:17:1: F401 'odoo.api' imported but unused
|
| 05/02/2026 01:20:07 | ERROR |
Subbuild # 381254:
odoo.modules.loading: Module test_pylint: 2 failures, 0 errors of 7 tests
|
| 05/02/2026 01:20:07 | ERROR |
Subbuild # 381254:
odoo.modules.loading: At least one test failed when loading the modules.
|
| 05/02/2026 01:20:07 | ERROR |
Subbuild # 381254:
odoo.tests.result: 2 failed, 0 error(s) of 24 tests when loading database 'rb-7c32844-221676-381254'
|
| 05/02/2026 04:45:05 | ERROR |
Subbuild # 381257:
odoo.addons.base.tests.test_deprecation: FAIL: Subtest TestModelDeprecations.test_name_get (model='viin.ai.vendor')
Traceback (most recent call last):
File "/data/build/Viindoo-odoo-17.0/odoo/addons/base/tests/test_deprecation.py", line 38, in test_name_get
self.fail(f"Deprecated name_get method found on {model_name} in {module.__name__}, you should override `_compute_display_name` instead")
AssertionError: Deprecated name_get method found on viin.ai.vendor in odoo.addons.viin_ai_base.models.vendor, you should override `_compute_display_name` instead
|
| 05/02/2026 04:45:05 | ERROR |
Subbuild # 381257:
odoo.tests.result: 1 failed, 0 error(s) of 2172 tests when loading database 'rb-7c32844-221676-381257'
|
| 05/02/2026 03:30:04 | WARNING |
Subbuild # 381259:
odoo.addons.to_base.tests.test_validate_record_rules:
'viin_brain.rule_page_record_link_inherit_page' rule: You should set 'perm_create=False', because 'base.group_user' group has 'perm_create=False' on model 'viin.brain.page.record.link'.
'viin_brain.rule_page_record_link_inherit_page' rule: You should set 'perm_write=False', because 'base.group_user' group has 'perm_write=False' on model 'viin.brain.page.record.link'.
'viin_brain.rule_page_record_link_inherit_page' rule: You should set 'perm_unlink=False', because 'base.group_user' group has 'perm_unlink=False' on model 'viin.brain.page.record.link'.
'viin_ai_rag.viin_ai_source_company_rule' rule: You should set 'perm_create=False', because 'base.group_user' group has 'perm_create=False' on model 'viin.ai.source'.
'viin_ai_rag.viin_ai_source_company_rule' rule: You should set 'perm_write=False', because 'base.group_user' group has 'perm_write=False' on model 'viin.ai.source'.
'viin_ai_rag.viin_ai_source_company_rule' rule: You should set 'perm_unlink=False', because 'base.group_user' group has 'perm_unlink=False' on model 'viin.ai.source'.
'viin_ai_rag.viin_ai_embedding_company_rule' rule: You should set 'perm_create=False', because 'base.group_user' group has 'perm_create=False' on model 'viin.ai.embedding'.
'viin_ai_rag.viin_ai_embedding_company_rule' rule: You should set 'perm_write=False', because 'base.group_user' group has 'perm_write=False' on model 'viin.ai.embedding'.
'viin_ai_rag.viin_ai_embedding_company_rule' rule: You should set 'perm_unlink=False', because 'base.group_user' group has 'perm_unlink=False' on model 'viin.ai.embedding'.
|
| 05/02/2026 03:35:35 | ERROR |
Subbuild # 381260:
ERROR: duplicate key value violates unique constraint "viin_ai_tool_viin_ai_tool_technical_name_unique"
|
| 05/02/2026 03:35:35 | ERROR |
Subbuild # 381260:
odoo.sql_db: bad query: INSERT INTO "viin_ai_tool" ("action_id", "active", "create_date", "create_uid", "description", "name", "parameters_schema", "requires_confirmation", "runs_as_sudo", "sequence", "technical_name", "write_date", "write_uid") VALUES (2077, true, '2026-05-01 20:05:48.373129', 1, 'B', 'Tool alpha duplicate', '{}', false, false, 10, 'alpha', '2026-05-01 20:05:48.373129', 1) RETURNING "id"
DETAIL: Key (technical_name)=(alpha) already exists.
|
| 05/02/2026 03:35:35 | WARNING |
Subbuild # 381260:
odoo.addons.viin_ai_agent.models.ir_actions_server: viin_ai_agent: server action WI17 No Model (ai_prompt) missing required fields (ai_model_id, ai_prompt, or ai_target_field_id) — skipping.
|
| 05/02/2026 03:35:35 | WARNING |
Subbuild # 381260:
odoo.addons.viin_ai_agent.models.ir_actions_server: viin_ai_agent: server action WI17 No Prompt (ai_prompt) missing required fields (ai_model_id, ai_prompt, or ai_target_field_id) — skipping.
|
| 05/02/2026 03:35:35 | ERROR |
Subbuild # 381260:
ERROR: operator does not exist: jsonb ~~ unknown
|
| 05/02/2026 03:35:35 | ERROR |
Subbuild # 381260:
odoo.sql_db: bad query: WITH __acl_allowed AS (SELECT res_partner.id FROM "res_partner" WHERE (((("res_partner"."partner_share" IS NULL OR "res_partner"."partner_share" = FALSE) OR ("res_partner"."company_id" IN (SELECT "res_company"."id" FROM "res_company" WHERE ("res_company"."id" IN (1))))) OR "res_partner"."company_id" IS NULL) AND (("res_partner"."id" != '1286') OR "res_partner"."id" IS NULL))) SELECT id, name FROM res_partner WHERE id IN (SELECT id FROM __acl_allowed) AND name LIKE 'TPL-%%-PARTNER'
LINE 1: ...ERE id IN (SELECT id FROM __acl_allowed) AND name LIKE 'TPL-...
^
HINT: No operator matches the given name and argument types. You might need to add explicit type casts.
|
| 05/02/2026 03:35:35 | ERROR |
Subbuild # 381260:
odoo.addons.viin_ai_agent.tests.test_sql_template: ERROR: TestSqlTemplateAclAndExecute.test_ir_rule_subquery_acl
Traceback (most recent call last):
File "/data/build/rb-7c32844-221676/viin_ai_agent/tests/test_sql_template.py", line 186, in test_ir_rule_subquery_acl
rows = tpl.with_user(regular).execute({})
File "/data/build/rb-7c32844-221676/viin_ai_agent/models/sql_template.py", line 264, in execute
cr.execute(full_sql, params)
File "/data/build/Viindoo-odoo-17.0/odoo/sql_db.py", line 342, in execute
res = self._obj.execute(query, params)
psycopg2.errors.UndefinedFunction: operator does not exist: jsonb ~~ unknown
LINE 1: ...ERE id IN (SELECT id FROM __acl_allowed) AND name LIKE 'TPL-...
^
HINT: No operator matches the given name and argument types. You might need to add explicit type casts.
|
| 05/02/2026 03:35:35 | ERROR |
Subbuild # 381260:
odoo.addons.viin_ai_base.tests.test_feedback_export_dataset: FAIL: TestFeedbackExportDataset.test_export_empty_db_creates_empty_attachment
Traceback (most recent call last):
File "/data/build/rb-7c32844-221676/viin_ai_base/tests/test_feedback_export_dataset.py", line 56, in test_export_empty_db_creates_empty_attachment
self.assertEqual(att.raw, b'', 'body must be empty when no rows')
AssertionError: False != b'' : body must be empty when no rows
|
| 05/02/2026 03:35:35 | WARNING |
Subbuild # 381260:
post_migrate: viin_ai_base post-migrate: provider id=1 has unknown provider_type=None. Mapped to vendor_openai as fallback.
|
| 05/02/2026 03:35:35 | WARNING |
Subbuild # 381260:
post_migrate: viin_ai_base post-migrate: provider id=2 has unknown provider_type=None. Mapped to vendor_openai as fallback.
|
| 05/02/2026 03:35:35 | WARNING |
Subbuild # 381260:
post_migrate: viin_ai_base post-migrate: provider id=3 has unknown provider_type=None. Mapped to vendor_openai as fallback.
|
| 05/02/2026 03:35:35 | WARNING |
Subbuild # 381260:
post_migrate: viin_ai_base post-migrate: provider id=4 has unknown provider_type=None. Mapped to vendor_openai as fallback.
|
| 05/02/2026 03:35:35 | WARNING |
Subbuild # 381260:
post_migrate: viin_ai_base post-migrate: provider id=5 has unknown provider_type=None. Mapped to vendor_openai as fallback.
|
| 05/02/2026 03:35:35 | WARNING |
Subbuild # 381260:
post_migrate: viin_ai_base post-migrate: provider id=6 has unknown provider_type=None. Mapped to vendor_openai as fallback.
|
| 05/02/2026 03:35:35 | WARNING |
Subbuild # 381260:
post_migrate: viin_ai_base post-migrate: provider id=7 has unknown provider_type=None. Mapped to vendor_openai as fallback.
|
| 05/02/2026 03:35:35 | WARNING |
Subbuild # 381260:
post_migrate: viin_ai_base post-migrate: provider id=8 has unknown provider_type=None. Mapped to vendor_openai as fallback.
|
| 05/02/2026 03:35:35 | WARNING |
Subbuild # 381260:
post_migrate: viin_ai_base post-migrate: provider id=9 has unknown provider_type=None. Mapped to vendor_openai as fallback.
|
| 05/02/2026 03:35:35 | WARNING |
Subbuild # 381260:
post_migrate: viin_ai_base post-migrate: provider id=10 has unknown provider_type=None. Mapped to vendor_openai as fallback.
|
| 05/02/2026 03:35:35 | WARNING |
Subbuild # 381260:
post_migrate: viin_ai_base post-migrate: provider id=11 has unknown provider_type=None. Mapped to vendor_openai as fallback.
|
| 05/02/2026 03:35:35 | WARNING |
Subbuild # 381260:
post_migrate: viin_ai_base post-migrate: provider id=12 has unknown provider_type=None. Mapped to vendor_openai as fallback.
|
| 05/02/2026 03:35:35 | WARNING |
Subbuild # 381260:
post_migrate: viin_ai_base post-migrate: provider id=13 has unknown provider_type=None. Mapped to vendor_openai as fallback.
|
| 05/02/2026 03:35:35 | WARNING |
Subbuild # 381260:
post_migrate: viin_ai_base post-migrate: provider id=14 has unknown provider_type=None. Mapped to vendor_openai as fallback.
|
| 05/02/2026 03:35:35 | WARNING |
Subbuild # 381260:
post_migrate: viin_ai_base post-migrate: provider id=1 has unknown provider_type=None. Mapped to vendor_openai as fallback.
|
| 05/02/2026 03:35:35 | WARNING |
Subbuild # 381260:
post_migrate: viin_ai_base post-migrate: provider id=2 has unknown provider_type=None. Mapped to vendor_openai as fallback.
|
| 05/02/2026 03:35:35 | WARNING |
Subbuild # 381260:
post_migrate: viin_ai_base post-migrate: provider id=3 has unknown provider_type=None. Mapped to vendor_openai as fallback.
|
| 05/02/2026 03:35:35 | WARNING |
Subbuild # 381260:
post_migrate: viin_ai_base post-migrate: provider id=4 has unknown provider_type=None. Mapped to vendor_openai as fallback.
|
| 05/02/2026 03:35:35 | WARNING |
Subbuild # 381260:
post_migrate: viin_ai_base post-migrate: provider id=5 has unknown provider_type=None. Mapped to vendor_openai as fallback.
|
| 05/02/2026 03:35:35 | WARNING |
Subbuild # 381260:
post_migrate: viin_ai_base post-migrate: provider id=6 has unknown provider_type=None. Mapped to vendor_openai as fallback.
|
| 05/02/2026 03:35:35 | WARNING |
Subbuild # 381260:
post_migrate: viin_ai_base post-migrate: provider id=7 has unknown provider_type=None. Mapped to vendor_openai as fallback.
|
| 05/02/2026 03:35:35 | WARNING |
Subbuild # 381260:
post_migrate: viin_ai_base post-migrate: provider id=8 has unknown provider_type=None. Mapped to vendor_openai as fallback.
|
| 05/02/2026 03:35:35 | WARNING |
Subbuild # 381260:
post_migrate: viin_ai_base post-migrate: provider id=9 has unknown provider_type=None. Mapped to vendor_openai as fallback.
|
| 05/02/2026 03:35:35 | WARNING |
Subbuild # 381260:
post_migrate: viin_ai_base post-migrate: provider id=10 has unknown provider_type=None. Mapped to vendor_openai as fallback.
|
| 05/02/2026 03:35:35 | WARNING |
Subbuild # 381260:
post_migrate: viin_ai_base post-migrate: provider id=11 has unknown provider_type=None. Mapped to vendor_openai as fallback.
|
| 05/02/2026 03:35:35 | WARNING |
Subbuild # 381260:
post_migrate: viin_ai_base post-migrate: provider id=12 has unknown provider_type=None. Mapped to vendor_openai as fallback.
|
| 05/02/2026 03:35:35 | WARNING |
Subbuild # 381260:
post_migrate: viin_ai_base post-migrate: provider id=13 has unknown provider_type=None. Mapped to vendor_openai as fallback.
|
| 05/02/2026 03:35:35 | WARNING |
Subbuild # 381260:
post_migrate: viin_ai_base post-migrate: provider id=14 has unknown provider_type=None. Mapped to vendor_openai as fallback.
|
| 05/02/2026 03:35:35 | WARNING |
Subbuild # 381260:
post_migrate: viin_ai_base post-migrate: provider id=30 (embedding_service) mapped to vendor_openai as default. Admin should verify and correct vendor_id.
|
| 05/02/2026 03:35:35 | WARNING |
Subbuild # 381260:
post_migrate: viin_ai_base post-migrate: provider id=1 has unknown provider_type=None. Mapped to vendor_openai as fallback.
|
| 05/02/2026 03:35:35 | WARNING |
Subbuild # 381260:
post_migrate: viin_ai_base post-migrate: provider id=2 has unknown provider_type=None. Mapped to vendor_openai as fallback.
|
| 05/02/2026 03:35:35 | WARNING |
Subbuild # 381260:
post_migrate: viin_ai_base post-migrate: provider id=3 has unknown provider_type=None. Mapped to vendor_openai as fallback.
|
| 05/02/2026 03:35:35 | WARNING |
Subbuild # 381260:
post_migrate: viin_ai_base post-migrate: provider id=4 has unknown provider_type=None. Mapped to vendor_openai as fallback.
|
| 05/02/2026 03:35:35 | WARNING |
Subbuild # 381260:
post_migrate: viin_ai_base post-migrate: provider id=5 has unknown provider_type=None. Mapped to vendor_openai as fallback.
|
| 05/02/2026 03:35:35 | WARNING |
Subbuild # 381260:
post_migrate: viin_ai_base post-migrate: provider id=6 has unknown provider_type=None. Mapped to vendor_openai as fallback.
|
| 05/02/2026 03:35:35 | WARNING |
Subbuild # 381260:
post_migrate: viin_ai_base post-migrate: provider id=7 has unknown provider_type=None. Mapped to vendor_openai as fallback.
|
| 05/02/2026 03:35:35 | WARNING |
Subbuild # 381260:
post_migrate: viin_ai_base post-migrate: provider id=8 has unknown provider_type=None. Mapped to vendor_openai as fallback.
|
| 05/02/2026 03:35:35 | WARNING |
Subbuild # 381260:
post_migrate: viin_ai_base post-migrate: provider id=9 has unknown provider_type=None. Mapped to vendor_openai as fallback.
|
| 05/02/2026 03:35:35 | WARNING |
Subbuild # 381260:
post_migrate: viin_ai_base post-migrate: provider id=10 has unknown provider_type=None. Mapped to vendor_openai as fallback.
|
| 05/02/2026 03:35:35 | WARNING |
Subbuild # 381260:
post_migrate: viin_ai_base post-migrate: provider id=11 has unknown provider_type=None. Mapped to vendor_openai as fallback.
|
| 05/02/2026 03:35:35 | WARNING |
Subbuild # 381260:
post_migrate: viin_ai_base post-migrate: provider id=12 has unknown provider_type=None. Mapped to vendor_openai as fallback.
|
| 05/02/2026 03:35:35 | WARNING |
Subbuild # 381260:
post_migrate: viin_ai_base post-migrate: provider id=13 has unknown provider_type=None. Mapped to vendor_openai as fallback.
|
| 05/02/2026 03:35:35 | WARNING |
Subbuild # 381260:
post_migrate: viin_ai_base post-migrate: provider id=14 has unknown provider_type=None. Mapped to vendor_openai as fallback.
|
| 05/02/2026 03:35:35 | WARNING |
Subbuild # 381260:
post_migrate: viin_ai_base post-migrate: provider id=1 has unknown provider_type=None. Mapped to vendor_openai as fallback.
|
| 05/02/2026 03:35:35 | WARNING |
Subbuild # 381260:
post_migrate: viin_ai_base post-migrate: provider id=2 has unknown provider_type=None. Mapped to vendor_openai as fallback.
|
| 05/02/2026 03:35:35 | WARNING |
Subbuild # 381260:
post_migrate: viin_ai_base post-migrate: provider id=3 has unknown provider_type=None. Mapped to vendor_openai as fallback.
|
| 05/02/2026 03:35:35 | WARNING |
Subbuild # 381260:
post_migrate: viin_ai_base post-migrate: provider id=4 has unknown provider_type=None. Mapped to vendor_openai as fallback.
|
| 05/02/2026 03:35:35 | WARNING |
Subbuild # 381260:
post_migrate: viin_ai_base post-migrate: provider id=5 has unknown provider_type=None. Mapped to vendor_openai as fallback.
|
| 05/02/2026 03:35:35 | WARNING |
Subbuild # 381260:
post_migrate: viin_ai_base post-migrate: provider id=6 has unknown provider_type=None. Mapped to vendor_openai as fallback.
|
| 05/02/2026 03:35:35 | WARNING |
Subbuild # 381260:
post_migrate: viin_ai_base post-migrate: provider id=7 has unknown provider_type=None. Mapped to vendor_openai as fallback.
|
| 05/02/2026 03:35:35 | WARNING |
Subbuild # 381260:
post_migrate: viin_ai_base post-migrate: provider id=8 has unknown provider_type=None. Mapped to vendor_openai as fallback.
|
| 05/02/2026 03:35:35 | WARNING |
Subbuild # 381260:
post_migrate: viin_ai_base post-migrate: provider id=9 has unknown provider_type=None. Mapped to vendor_openai as fallback.
|
| 05/02/2026 03:35:35 | WARNING |
Subbuild # 381260:
post_migrate: viin_ai_base post-migrate: provider id=10 has unknown provider_type=None. Mapped to vendor_openai as fallback.
|
| 05/02/2026 03:35:35 | WARNING |
Subbuild # 381260:
post_migrate: viin_ai_base post-migrate: provider id=11 has unknown provider_type=None. Mapped to vendor_openai as fallback.
|
| 05/02/2026 03:35:35 | WARNING |
Subbuild # 381260:
post_migrate: viin_ai_base post-migrate: provider id=12 has unknown provider_type=None. Mapped to vendor_openai as fallback.
|
| 05/02/2026 03:35:35 | WARNING |
Subbuild # 381260:
post_migrate: viin_ai_base post-migrate: provider id=13 has unknown provider_type=None. Mapped to vendor_openai as fallback.
|
| 05/02/2026 03:35:35 | WARNING |
Subbuild # 381260:
post_migrate: viin_ai_base post-migrate: provider id=14 has unknown provider_type=None. Mapped to vendor_openai as fallback.
|
| 05/02/2026 03:35:35 | WARNING |
Subbuild # 381260:
post_migrate: viin_ai_base post-migrate: provider id=32 (custom, base_url=https://my-private-proxy.internal/api) could not be matched. Mapped to vendor_openai as fallback. Admin must review.
|
| 05/02/2026 03:35:35 | WARNING |
Subbuild # 381260:
post_migrate: viin_ai_base post-migrate: provider id=1 has unknown provider_type=None. Mapped to vendor_openai as fallback.
|
| 05/02/2026 03:35:35 | WARNING |
Subbuild # 381260:
post_migrate: viin_ai_base post-migrate: provider id=2 has unknown provider_type=None. Mapped to vendor_openai as fallback.
|
| 05/02/2026 03:35:35 | WARNING |
Subbuild # 381260:
post_migrate: viin_ai_base post-migrate: provider id=3 has unknown provider_type=None. Mapped to vendor_openai as fallback.
|
| 05/02/2026 03:35:35 | WARNING |
Subbuild # 381260:
post_migrate: viin_ai_base post-migrate: provider id=4 has unknown provider_type=None. Mapped to vendor_openai as fallback.
|
| 05/02/2026 03:35:35 | WARNING |
Subbuild # 381260:
post_migrate: viin_ai_base post-migrate: provider id=5 has unknown provider_type=None. Mapped to vendor_openai as fallback.
|
| 05/02/2026 03:35:35 | WARNING |
Subbuild # 381260:
post_migrate: viin_ai_base post-migrate: provider id=6 has unknown provider_type=None. Mapped to vendor_openai as fallback.
|
| 05/02/2026 03:35:35 | WARNING |
Subbuild # 381260:
post_migrate: viin_ai_base post-migrate: provider id=7 has unknown provider_type=None. Mapped to vendor_openai as fallback.
|
| 05/02/2026 03:35:35 | WARNING |
Subbuild # 381260:
post_migrate: viin_ai_base post-migrate: provider id=8 has unknown provider_type=None. Mapped to vendor_openai as fallback.
|
| 05/02/2026 03:35:35 | WARNING |
Subbuild # 381260:
post_migrate: viin_ai_base post-migrate: provider id=9 has unknown provider_type=None. Mapped to vendor_openai as fallback.
|
| 05/02/2026 03:35:35 | WARNING |
Subbuild # 381260:
post_migrate: viin_ai_base post-migrate: provider id=10 has unknown provider_type=None. Mapped to vendor_openai as fallback.
|
| 05/02/2026 03:35:35 | WARNING |
Subbuild # 381260:
post_migrate: viin_ai_base post-migrate: provider id=11 has unknown provider_type=None. Mapped to vendor_openai as fallback.
|
| 05/02/2026 03:35:35 | WARNING |
Subbuild # 381260:
post_migrate: viin_ai_base post-migrate: provider id=12 has unknown provider_type=None. Mapped to vendor_openai as fallback.
|
| 05/02/2026 03:35:35 | WARNING |
Subbuild # 381260:
post_migrate: viin_ai_base post-migrate: provider id=13 has unknown provider_type=None. Mapped to vendor_openai as fallback.
|
| 05/02/2026 03:35:35 | WARNING |
Subbuild # 381260:
post_migrate: viin_ai_base post-migrate: provider id=14 has unknown provider_type=None. Mapped to vendor_openai as fallback.
|
| 05/02/2026 03:35:35 | WARNING |
Subbuild # 381260:
post_migrate: viin_ai_base post-migrate: provider id=1 has unknown provider_type=None. Mapped to vendor_openai as fallback.
|
| 05/02/2026 03:35:35 | WARNING |
Subbuild # 381260:
post_migrate: viin_ai_base post-migrate: provider id=2 has unknown provider_type=None. Mapped to vendor_openai as fallback.
|
| 05/02/2026 03:35:35 | WARNING |
Subbuild # 381260:
post_migrate: viin_ai_base post-migrate: provider id=3 has unknown provider_type=None. Mapped to vendor_openai as fallback.
|
| 05/02/2026 03:35:35 | WARNING |
Subbuild # 381260:
post_migrate: viin_ai_base post-migrate: provider id=4 has unknown provider_type=None. Mapped to vendor_openai as fallback.
|
| 05/02/2026 03:35:35 | WARNING |
Subbuild # 381260:
post_migrate: viin_ai_base post-migrate: provider id=5 has unknown provider_type=None. Mapped to vendor_openai as fallback.
|
| 05/02/2026 03:35:35 | WARNING |
Subbuild # 381260:
post_migrate: viin_ai_base post-migrate: provider id=6 has unknown provider_type=None. Mapped to vendor_openai as fallback.
|
| 05/02/2026 03:35:35 | WARNING |
Subbuild # 381260:
post_migrate: viin_ai_base post-migrate: provider id=7 has unknown provider_type=None. Mapped to vendor_openai as fallback.
|
| 05/02/2026 03:35:35 | WARNING |
Subbuild # 381260:
post_migrate: viin_ai_base post-migrate: provider id=8 has unknown provider_type=None. Mapped to vendor_openai as fallback.
|
| 05/02/2026 03:35:35 | WARNING |
Subbuild # 381260:
post_migrate: viin_ai_base post-migrate: provider id=9 has unknown provider_type=None. Mapped to vendor_openai as fallback.
|
| 05/02/2026 03:35:35 | WARNING |
Subbuild # 381260:
post_migrate: viin_ai_base post-migrate: provider id=10 has unknown provider_type=None. Mapped to vendor_openai as fallback.
|
| 05/02/2026 03:35:35 | WARNING |
Subbuild # 381260:
post_migrate: viin_ai_base post-migrate: provider id=11 has unknown provider_type=None. Mapped to vendor_openai as fallback.
|
| 05/02/2026 03:35:35 | WARNING |
Subbuild # 381260:
post_migrate: viin_ai_base post-migrate: provider id=12 has unknown provider_type=None. Mapped to vendor_openai as fallback.
|
| 05/02/2026 03:35:35 | WARNING |
Subbuild # 381260:
post_migrate: viin_ai_base post-migrate: provider id=13 has unknown provider_type=None. Mapped to vendor_openai as fallback.
|
| 05/02/2026 03:35:35 | WARNING |
Subbuild # 381260:
post_migrate: viin_ai_base post-migrate: provider id=14 has unknown provider_type=None. Mapped to vendor_openai as fallback.
|
| 05/02/2026 03:35:35 | ERROR |
Subbuild # 381260:
odoo.addons.viin_ai_base.tests.test_phase1_e2e: FAIL: TestPhase1E2E.test_seed_100_logs_visible_in_pivot
Traceback (most recent call last):
File "/data/build/rb-7c32844-221676/viin_ai_base/tests/test_phase1_e2e.py", line 131, in test_seed_100_logs_visible_in_pivot
self.assertEqual(
AssertionError: 0 != 100 : Grouped usage.log records should total 100, got 0
|
| 05/02/2026 03:35:35 | WARNING |
Subbuild # 381260:
odoo.http: Unknown res_model: does.not.exist
|
| 05/02/2026 03:35:35 | WARNING |
Subbuild # 381260:
odoo.http: messages[0].content is empty.
|
| 05/02/2026 03:35:35 | ERROR |
Subbuild # 381260:
odoo.addons.viin_ai_chat.controllers.chat_controller: chat_message failed for agent 19
Traceback (most recent call last):
File "/data/build/rb-7c32844-221676/viin_ai_chat/controllers/chat_controller.py", line 70, in chat_message
result = agent.run(messages, context=context)
File "/data/build/rb-7c32844-221676/viin_ai_agent/models/agent.py", line 585, in run
response = self._do_llm_call(
File "/data/build/rb-7c32844-221676/viin_ai_chat/tests/test_chat_controller.py", line 202, in _boom
raise RuntimeError('upstream down')
RuntimeError: upstream down
|
| 05/02/2026 03:35:35 | WARNING |
Subbuild # 381260:
odoo.http: messages must be a non-empty list.
|
| 05/02/2026 03:35:35 | WARNING |
Subbuild # 381260:
odoo.http: messages[0].role is invalid.
|
| 05/02/2026 03:35:35 | WARNING |
Subbuild # 381260:
odoo.http: trace_id is required.
|
| 05/02/2026 03:35:35 | WARNING |
Subbuild # 381260:
odoo.http: No credits left.
|
| 05/02/2026 03:35:35 | ERROR |
Subbuild # 381260:
odoo.addons.viin_ai_chat.controllers.chat_controller: chat_message failed for agent 20
Traceback (most recent call last):
File "/data/build/rb-7c32844-221676/viin_ai_chat/controllers/chat_controller.py", line 70, in chat_message
result = agent.run(messages, context=context)
File "/data/build/rb-7c32844-221676/viin_ai_agent/models/agent.py", line 585, in run
response = self._do_llm_call(
File "/data/build/rb-7c32844-221676/viin_ai_chat/tests/test_chat_streaming.py", line 129, in _boom
raise RuntimeError('upstream down')
RuntimeError: upstream down
|
| 05/02/2026 03:35:35 | ERROR |
Subbuild # 381260:
odoo.addons.viin_ai_chat.models.discuss_channel: viin.ai discuss bot failed to reply in channel 19
Traceback (most recent call last):
File "/data/build/rb-7c32844-221676/viin_ai_chat/models/discuss_channel.py", line 37, in message_post
self._viin_ai_maybe_trigger_reply(message)
File "/data/build/rb-7c32844-221676/viin_ai_chat/models/discuss_channel.py", line 66, in _viin_ai_maybe_trigger_reply
result = agent.run(conversation, context={
File "/data/build/rb-7c32844-221676/viin_ai_chat/tests/test_discuss_bot.py", line 184, in _boom
raise RuntimeError('agent crashed')
RuntimeError: agent crashed
|
| 05/02/2026 03:35:35 | WARNING |
Subbuild # 381260:
odoo.http: rating must be 'up', 'down', or 'flag', got: invalid_value
|
| 05/02/2026 03:35:35 | WARNING |
Subbuild # 381260:
odoo.http: decision must be 'approve' or 'reject', got: maybe
|
| 05/02/2026 03:35:35 | WARNING |
Subbuild # 381260:
odoo.http: tool_call_id is required.
|
| 05/02/2026 03:35:35 | WARNING |
Subbuild # 381260:
odoo.http: No pending tool call: wi15-nonexistent-999
|
| 05/02/2026 03:35:35 | WARNING |
Subbuild # 381260:
odoo.http: model_name is required and must be a string.
|
| 05/02/2026 03:35:35 | WARNING |
Subbuild # 381260:
odoo.http: Unknown model: nonexistent.model.xyz
|
| 05/02/2026 03:35:35 | ERROR |
Subbuild # 381260:
odoo.addons.viin_brain_account_reports.tests.test_brain_account_report_embed: ERROR: TestBrainAccountReportEmbed.test_banner_text_populated
Traceback (most recent call last):
File "/data/build/rb-7c32844-221676/viin_brain_account_reports/tests/test_brain_account_report_embed.py", line 322, in test_banner_text_populated
snapshot = self.Snapshot.with_user(self.user_editor).capture_account_report(
File "/data/build/rb-7c32844-221676/viin_brain_account_reports/models/viin_brain_snapshot.py", line 277, in capture_account_report
normalized_options = self._normalize_account_report_options(report, options)
File "/data/build/rb-7c32844-221676/viin_brain_account_reports/models/viin_brain_snapshot.py", line 46, in _normalize_account_report_options
normalized = self.env['account.report'].init_filter_options(
File "/data/build/Viindoo-erponline-enterprise-17.0/to_account_reports_report_off/models/account_report.py", line 9, in init_filter_options
filter_options = super(AccountReport, self).init_filter_options(report_id=report_id, option_params=option_params)
File "/data/build/Viindoo-erponline-enterprise-17.0/to_account_reports/models/account_report.py", line 92, in init_filter_options
date_range = account_report._get_date_range()
File "/data/build/Viindoo-erponline-enterprise-17.0/to_account_reports/models/account_report.py", line 287, in _get_date_range
company_fiscalyear_dates = self.env.company.compute_fiscalyear_dates(fields.Datetime.now())
File "/data/build/Viindoo-erponline-enterprise-17.0/to_account_accountant/models/res_company.py", line 26, in compute_fiscalyear_dates
fiscalyear = self.env['account.fiscal.year'].search([
File "/data/build/Viindoo-odoo-17.0/odoo/models.py", line 1623, in search
return self.search_fetch(domain, [], offset=offset, limit=limit, order=order)
File "/data/build/Viindoo-odoo-17.0/odoo/models.py", line 1646, in search_fetch
query = self._search(domain, offset=offset, limit=limit, order=order or self._order)
File "/data/build/Viindoo-odoo-17.0/odoo/models.py", line 5436, in _search
model.check_access_rights('read')
File "/data/build/Viindoo-odoo-17.0/odoo/models.py", line 4148, in check_access_rights
return self.env['ir.model.access'].check(self._name, operation, raise_exception)
File "/data/build/Viindoo-odoo-17.0/odoo/addons/base/models/ir_model.py", line 2100, in check
raise AccessError(msg) from None
odoo.exceptions.AccessError: You are not allowed to access 'Fiscal Year' (account.fiscal.year) records.
This operation is allowed for the following groups:
- Invoicing/Administrator
- Invoicing/Auditor - Readonly
Contact your administrator to request access if necessary.
|
| 05/02/2026 03:35:35 | ERROR |
Subbuild # 381260:
odoo.addons.viin_brain_account_reports.tests.test_brain_account_report_embed: ERROR: TestBrainAccountReportEmbed.test_capture_account_report
Traceback (most recent call last):
File "/data/build/rb-7c32844-221676/viin_brain_account_reports/tests/test_brain_account_report_embed.py", line 94, in test_capture_account_report
snapshot = self.Snapshot.with_user(self.user_editor).capture_account_report(
File "/data/build/rb-7c32844-221676/viin_brain_account_reports/models/viin_brain_snapshot.py", line 277, in capture_account_report
normalized_options = self._normalize_account_report_options(report, options)
File "/data/build/rb-7c32844-221676/viin_brain_account_reports/models/viin_brain_snapshot.py", line 46, in _normalize_account_report_options
normalized = self.env['account.report'].init_filter_options(
File "/data/build/Viindoo-erponline-enterprise-17.0/to_account_reports_report_off/models/account_report.py", line 9, in init_filter_options
filter_options = super(AccountReport, self).init_filter_options(report_id=report_id, option_params=option_params)
File "/data/build/Viindoo-erponline-enterprise-17.0/to_account_reports/models/account_report.py", line 92, in init_filter_options
date_range = account_report._get_date_range()
File "/data/build/Viindoo-erponline-enterprise-17.0/to_account_reports/models/account_report.py", line 287, in _get_date_range
company_fiscalyear_dates = self.env.company.compute_fiscalyear_dates(fields.Datetime.now())
File "/data/build/Viindoo-erponline-enterprise-17.0/to_account_accountant/models/res_company.py", line 26, in compute_fiscalyear_dates
fiscalyear = self.env['account.fiscal.year'].search([
File "/data/build/Viindoo-odoo-17.0/odoo/models.py", line 1623, in search
return self.search_fetch(domain, [], offset=offset, limit=limit, order=order)
File "/data/build/Viindoo-odoo-17.0/odoo/models.py", line 1646, in search_fetch
query = self._search(domain, offset=offset, limit=limit, order=order or self._order)
File "/data/build/Viindoo-odoo-17.0/odoo/models.py", line 5436, in _search
model.check_access_rights('read')
File "/data/build/Viindoo-odoo-17.0/odoo/models.py", line 4148, in check_access_rights
return self.env['ir.model.access'].check(self._name, operation, raise_exception)
File "/data/build/Viindoo-odoo-17.0/odoo/addons/base/models/ir_model.py", line 2100, in check
raise AccessError(msg) from None
odoo.exceptions.AccessError: You are not allowed to access 'Fiscal Year' (account.fiscal.year) records.
This operation is allowed for the following groups:
- Invoicing/Administrator
- Invoicing/Auditor - Readonly
Contact your administrator to request access if necessary.
|
| 05/02/2026 03:35:35 | ERROR |
Subbuild # 381260:
odoo.addons.viin_brain_account_reports.tests.test_brain_account_report_embed: ERROR: TestBrainAccountReportEmbed.test_capture_normalizes_empty_options
Traceback (most recent call last):
File "/data/build/rb-7c32844-221676/viin_brain_account_reports/tests/test_brain_account_report_embed.py", line 136, in test_capture_normalizes_empty_options
snapshot = self.Snapshot.with_user(self.user_editor).capture_account_report(
File "/data/build/rb-7c32844-221676/viin_brain_account_reports/models/viin_brain_snapshot.py", line 277, in capture_account_report
normalized_options = self._normalize_account_report_options(report, options)
File "/data/build/rb-7c32844-221676/viin_brain_account_reports/models/viin_brain_snapshot.py", line 46, in _normalize_account_report_options
normalized = self.env['account.report'].init_filter_options(
File "/data/build/Viindoo-erponline-enterprise-17.0/to_account_reports_report_off/models/account_report.py", line 9, in init_filter_options
filter_options = super(AccountReport, self).init_filter_options(report_id=report_id, option_params=option_params)
File "/data/build/Viindoo-erponline-enterprise-17.0/to_account_reports/models/account_report.py", line 92, in init_filter_options
date_range = account_report._get_date_range()
File "/data/build/Viindoo-erponline-enterprise-17.0/to_account_reports/models/account_report.py", line 287, in _get_date_range
company_fiscalyear_dates = self.env.company.compute_fiscalyear_dates(fields.Datetime.now())
File "/data/build/Viindoo-erponline-enterprise-17.0/to_account_accountant/models/res_company.py", line 26, in compute_fiscalyear_dates
fiscalyear = self.env['account.fiscal.year'].search([
File "/data/build/Viindoo-odoo-17.0/odoo/models.py", line 1623, in search
return self.search_fetch(domain, [], offset=offset, limit=limit, order=order)
File "/data/build/Viindoo-odoo-17.0/odoo/models.py", line 1646, in search_fetch
query = self._search(domain, offset=offset, limit=limit, order=order or self._order)
File "/data/build/Viindoo-odoo-17.0/odoo/models.py", line 5436, in _search
model.check_access_rights('read')
File "/data/build/Viindoo-odoo-17.0/odoo/models.py", line 4148, in check_access_rights
return self.env['ir.model.access'].check(self._name, operation, raise_exception)
File "/data/build/Viindoo-odoo-17.0/odoo/addons/base/models/ir_model.py", line 2100, in check
raise AccessError(msg) from None
odoo.exceptions.AccessError: You are not allowed to access 'Fiscal Year' (account.fiscal.year) records.
This operation is allowed for the following groups:
- Invoicing/Administrator
- Invoicing/Auditor - Readonly
Contact your administrator to request access if necessary.
|
| 05/02/2026 03:35:35 | ERROR |
Subbuild # 381260:
odoo.addons.viin_brain_account_reports.tests.test_brain_account_report_embed: ERROR: TestBrainAccountReportEmbed.test_recapture_same_anchor_updates
Traceback (most recent call last):
File "/data/build/rb-7c32844-221676/viin_brain_account_reports/tests/test_brain_account_report_embed.py", line 343, in test_recapture_same_anchor_updates
first = self.Snapshot.with_user(self.user_editor).capture_account_report(
File "/data/build/rb-7c32844-221676/viin_brain_account_reports/models/viin_brain_snapshot.py", line 277, in capture_account_report
normalized_options = self._normalize_account_report_options(report, options)
File "/data/build/rb-7c32844-221676/viin_brain_account_reports/models/viin_brain_snapshot.py", line 46, in _normalize_account_report_options
normalized = self.env['account.report'].init_filter_options(
File "/data/build/Viindoo-erponline-enterprise-17.0/to_account_reports_report_off/models/account_report.py", line 9, in init_filter_options
filter_options = super(AccountReport, self).init_filter_options(report_id=report_id, option_params=option_params)
File "/data/build/Viindoo-erponline-enterprise-17.0/to_account_reports/models/account_report.py", line 92, in init_filter_options
date_range = account_report._get_date_range()
File "/data/build/Viindoo-erponline-enterprise-17.0/to_account_reports/models/account_report.py", line 287, in _get_date_range
company_fiscalyear_dates = self.env.company.compute_fiscalyear_dates(fields.Datetime.now())
File "/data/build/Viindoo-erponline-enterprise-17.0/to_account_accountant/models/res_company.py", line 26, in compute_fiscalyear_dates
fiscalyear = self.env['account.fiscal.year'].search([
File "/data/build/Viindoo-odoo-17.0/odoo/models.py", line 1623, in search
return self.search_fetch(domain, [], offset=offset, limit=limit, order=order)
File "/data/build/Viindoo-odoo-17.0/odoo/models.py", line 1646, in search_fetch
query = self._search(domain, offset=offset, limit=limit, order=order or self._order)
File "/data/build/Viindoo-odoo-17.0/odoo/models.py", line 5436, in _search
model.check_access_rights('read')
File "/data/build/Viindoo-odoo-17.0/odoo/models.py", line 4148, in check_access_rights
return self.env['ir.model.access'].check(self._name, operation, raise_exception)
File "/data/build/Viindoo-odoo-17.0/odoo/addons/base/models/ir_model.py", line 2100, in check
raise AccessError(msg) from None
odoo.exceptions.AccessError: You are not allowed to access 'Fiscal Year' (account.fiscal.year) records.
This operation is allowed for the following groups:
- Invoicing/Administrator
- Invoicing/Auditor - Readonly
Contact your administrator to request access if necessary.
|
| 05/02/2026 03:35:35 | ERROR |
Subbuild # 381260:
odoo.addons.viin_brain_account_reports.tests.test_brain_account_report_embed: ERROR: TestBrainAccountReportEmbed.test_refresh_forwards_options
Traceback (most recent call last):
File "/data/build/rb-7c32844-221676/viin_brain_account_reports/tests/test_brain_account_report_embed.py", line 219, in test_refresh_forwards_options
snapshot = self.Snapshot.with_user(self.user_editor).capture_account_report(
File "/data/build/rb-7c32844-221676/viin_brain_account_reports/models/viin_brain_snapshot.py", line 277, in capture_account_report
normalized_options = self._normalize_account_report_options(report, options)
File "/data/build/rb-7c32844-221676/viin_brain_account_reports/models/viin_brain_snapshot.py", line 46, in _normalize_account_report_options
normalized = self.env['account.report'].init_filter_options(
File "/data/build/Viindoo-erponline-enterprise-17.0/to_account_reports_report_off/models/account_report.py", line 9, in init_filter_options
filter_options = super(AccountReport, self).init_filter_options(report_id=report_id, option_params=option_params)
File "/data/build/Viindoo-erponline-enterprise-17.0/to_account_reports/models/account_report.py", line 92, in init_filter_options
date_range = account_report._get_date_range()
File "/data/build/Viindoo-erponline-enterprise-17.0/to_account_reports/models/account_report.py", line 287, in _get_date_range
company_fiscalyear_dates = self.env.company.compute_fiscalyear_dates(fields.Datetime.now())
File "/data/build/Viindoo-erponline-enterprise-17.0/to_account_accountant/models/res_company.py", line 26, in compute_fiscalyear_dates
fiscalyear = self.env['account.fiscal.year'].search([
File "/data/build/Viindoo-odoo-17.0/odoo/models.py", line 1623, in search
return self.search_fetch(domain, [], offset=offset, limit=limit, order=order)
File "/data/build/Viindoo-odoo-17.0/odoo/models.py", line 1646, in search_fetch
query = self._search(domain, offset=offset, limit=limit, order=order or self._order)
File "/data/build/Viindoo-odoo-17.0/odoo/models.py", line 5436, in _search
model.check_access_rights('read')
File "/data/build/Viindoo-odoo-17.0/odoo/models.py", line 4148, in check_access_rights
return self.env['ir.model.access'].check(self._name, operation, raise_exception)
File "/data/build/Viindoo-odoo-17.0/odoo/addons/base/models/ir_model.py", line 2100, in check
raise AccessError(msg) from None
odoo.exceptions.AccessError: You are not allowed to access 'Fiscal Year' (account.fiscal.year) records.
This operation is allowed for the following groups:
- Invoicing/Administrator
- Invoicing/Auditor - Readonly
Contact your administrator to request access if necessary.
|
| 05/02/2026 03:35:35 | ERROR |
Subbuild # 381260:
odoo.addons.viin_brain_account_reports.tests.test_brain_account_report_embed: ERROR: TestBrainAccountReportEmbed.test_refresh_rerenders
Traceback (most recent call last):
File "/data/build/rb-7c32844-221676/viin_brain_account_reports/tests/test_brain_account_report_embed.py", line 161, in test_refresh_rerenders
snapshot = self.Snapshot.with_user(self.user_editor).capture_account_report(
File "/data/build/rb-7c32844-221676/viin_brain_account_reports/models/viin_brain_snapshot.py", line 277, in capture_account_report
normalized_options = self._normalize_account_report_options(report, options)
File "/data/build/rb-7c32844-221676/viin_brain_account_reports/models/viin_brain_snapshot.py", line 46, in _normalize_account_report_options
normalized = self.env['account.report'].init_filter_options(
File "/data/build/Viindoo-erponline-enterprise-17.0/to_account_reports_report_off/models/account_report.py", line 9, in init_filter_options
filter_options = super(AccountReport, self).init_filter_options(report_id=report_id, option_params=option_params)
File "/data/build/Viindoo-erponline-enterprise-17.0/to_account_reports/models/account_report.py", line 92, in init_filter_options
date_range = account_report._get_date_range()
File "/data/build/Viindoo-erponline-enterprise-17.0/to_account_reports/models/account_report.py", line 287, in _get_date_range
company_fiscalyear_dates = self.env.company.compute_fiscalyear_dates(fields.Datetime.now())
File "/data/build/Viindoo-erponline-enterprise-17.0/to_account_accountant/models/res_company.py", line 26, in compute_fiscalyear_dates
fiscalyear = self.env['account.fiscal.year'].search([
File "/data/build/Viindoo-odoo-17.0/odoo/models.py", line 1623, in search
return self.search_fetch(domain, [], offset=offset, limit=limit, order=order)
File "/data/build/Viindoo-odoo-17.0/odoo/models.py", line 1646, in search_fetch
query = self._search(domain, offset=offset, limit=limit, order=order or self._order)
File "/data/build/Viindoo-odoo-17.0/odoo/models.py", line 5436, in _search
model.check_access_rights('read')
File "/data/build/Viindoo-odoo-17.0/odoo/models.py", line 4148, in check_access_rights
return self.env['ir.model.access'].check(self._name, operation, raise_exception)
File "/data/build/Viindoo-odoo-17.0/odoo/addons/base/models/ir_model.py", line 2100, in check
raise AccessError(msg) from None
odoo.exceptions.AccessError: You are not allowed to access 'Fiscal Year' (account.fiscal.year) records.
This operation is allowed for the following groups:
- Invoicing/Administrator
- Invoicing/Auditor - Readonly
Contact your administrator to request access if necessary.
|
| 05/02/2026 03:35:35 | ERROR |
Subbuild # 381260:
odoo.addons.viin_brain_account_reports.tests.test_brain_account_report_embed: ERROR: TestBrainAccountReportEmbed.test_require_access_placeholder
Traceback (most recent call last):
File "/data/build/rb-7c32844-221676/viin_brain_account_reports/tests/test_brain_account_report_embed.py", line 254, in test_require_access_placeholder
snapshot = self.Snapshot.with_user(self.user_editor).capture_account_report(
File "/data/build/rb-7c32844-221676/viin_brain_account_reports/models/viin_brain_snapshot.py", line 277, in capture_account_report
normalized_options = self._normalize_account_report_options(report, options)
File "/data/build/rb-7c32844-221676/viin_brain_account_reports/models/viin_brain_snapshot.py", line 46, in _normalize_account_report_options
normalized = self.env['account.report'].init_filter_options(
File "/data/build/Viindoo-erponline-enterprise-17.0/to_account_reports_report_off/models/account_report.py", line 9, in init_filter_options
filter_options = super(AccountReport, self).init_filter_options(report_id=report_id, option_params=option_params)
File "/data/build/Viindoo-erponline-enterprise-17.0/to_account_reports/models/account_report.py", line 92, in init_filter_options
date_range = account_report._get_date_range()
File "/data/build/Viindoo-erponline-enterprise-17.0/to_account_reports/models/account_report.py", line 287, in _get_date_range
company_fiscalyear_dates = self.env.company.compute_fiscalyear_dates(fields.Datetime.now())
File "/data/build/Viindoo-erponline-enterprise-17.0/to_account_accountant/models/res_company.py", line 26, in compute_fiscalyear_dates
fiscalyear = self.env['account.fiscal.year'].search([
File "/data/build/Viindoo-odoo-17.0/odoo/models.py", line 1623, in search
return self.search_fetch(domain, [], offset=offset, limit=limit, order=order)
File "/data/build/Viindoo-odoo-17.0/odoo/models.py", line 1646, in search_fetch
query = self._search(domain, offset=offset, limit=limit, order=order or self._order)
File "/data/build/Viindoo-odoo-17.0/odoo/models.py", line 5436, in _search
model.check_access_rights('read')
File "/data/build/Viindoo-odoo-17.0/odoo/models.py", line 4148, in check_access_rights
return self.env['ir.model.access'].check(self._name, operation, raise_exception)
File "/data/build/Viindoo-odoo-17.0/odoo/addons/base/models/ir_model.py", line 2100, in check
raise AccessError(msg) from None
odoo.exceptions.AccessError: You are not allowed to access 'Fiscal Year' (account.fiscal.year) records.
This operation is allowed for the following groups:
- Invoicing/Administrator
- Invoicing/Auditor - Readonly
Contact your administrator to request access if necessary.
|
| 05/02/2026 03:35:35 | ERROR |
Subbuild # 381260:
odoo.addons.viin_brain_account_reports.tests.test_brain_account_report_embed: ERROR: TestBrainAccountReportEmbed.test_snapshot_mode_empty_on_access_error
Traceback (most recent call last):
File "/data/build/rb-7c32844-221676/viin_brain_account_reports/tests/test_brain_account_report_embed.py", line 283, in test_snapshot_mode_empty_on_access_error
snapshot = self.Snapshot.with_user(self.user_editor).capture_account_report(
File "/data/build/rb-7c32844-221676/viin_brain_account_reports/models/viin_brain_snapshot.py", line 277, in capture_account_report
normalized_options = self._normalize_account_report_options(report, options)
File "/data/build/rb-7c32844-221676/viin_brain_account_reports/models/viin_brain_snapshot.py", line 46, in _normalize_account_report_options
normalized = self.env['account.report'].init_filter_options(
File "/data/build/Viindoo-erponline-enterprise-17.0/to_account_reports_report_off/models/account_report.py", line 9, in init_filter_options
filter_options = super(AccountReport, self).init_filter_options(report_id=report_id, option_params=option_params)
File "/data/build/Viindoo-erponline-enterprise-17.0/to_account_reports/models/account_report.py", line 92, in init_filter_options
date_range = account_report._get_date_range()
File "/data/build/Viindoo-erponline-enterprise-17.0/to_account_reports/models/account_report.py", line 287, in _get_date_range
company_fiscalyear_dates = self.env.company.compute_fiscalyear_dates(fields.Datetime.now())
File "/data/build/Viindoo-erponline-enterprise-17.0/to_account_accountant/models/res_company.py", line 26, in compute_fiscalyear_dates
fiscalyear = self.env['account.fiscal.year'].search([
File "/data/build/Viindoo-odoo-17.0/odoo/models.py", line 1623, in search
return self.search_fetch(domain, [], offset=offset, limit=limit, order=order)
File "/data/build/Viindoo-odoo-17.0/odoo/models.py", line 1646, in search_fetch
query = self._search(domain, offset=offset, limit=limit, order=order or self._order)
File "/data/build/Viindoo-odoo-17.0/odoo/models.py", line 5436, in _search
model.check_access_rights('read')
File "/data/build/Viindoo-odoo-17.0/odoo/models.py", line 4148, in check_access_rights
return self.env['ir.model.access'].check(self._name, operation, raise_exception)
File "/data/build/Viindoo-odoo-17.0/odoo/addons/base/models/ir_model.py", line 2100, in check
raise AccessError(msg) from None
odoo.exceptions.AccessError: You are not allowed to access 'Fiscal Year' (account.fiscal.year) records.
This operation is allowed for the following groups:
- Invoicing/Administrator
- Invoicing/Auditor - Readonly
Contact your administrator to request access if necessary.
|
| 05/02/2026 03:35:35 | ERROR |
Subbuild # 381260:
odoo.tests.result: 2 failed, 9 error(s) of 1747 tests when loading database 'rb-7c32844-221676-381260'
|
| 05/02/2026 03:00:51 | ERROR |
Subbuild # 381262:
odoo.addons.web.tests.test_assets: ERROR: TestLogsAssetsGenerateTime.test_logs_assets_generate_time
Traceback (most recent call last):
File "/data/build/Viindoo-odoo-17.0/addons/web/tests/test_assets.py", line 55, in test_logs_assets_generate_time
for bundle, duration in list(self.generate_bundles()):
File "/data/build/Viindoo-odoo-17.0/addons/web/tests/test_assets.py", line 41, in generate_bundles
bundle.js()
File "/data/build/Viindoo-odoo-17.0/odoo/addons/base/models/assetsbundle.py", line 348, in js
content_bundle += template_bundle
MemoryError
|
| 05/02/2026 03:00:51 | ERROR |
Subbuild # 381262:
odoo.tests.result: 0 failed, 1 error(s) of 1405 tests when loading database 'rb-7c32844-221676-381262'
|