Uit PostHog (mcp_tool_called, prod, 4 weken t/m 2026-09-05): 226 errored calls met error_type=TypeError op method=load_records, verspreid over 52 gebruikers. Geen enkele andere methode produceert TypeErrors op die schaal.
Oorzaak
mcp_server_odoo/odoo_connection/orm.py:322-325 en mcp_server_odoo/odoo_json2_orm.py:181-185:
logger.info(
f"Loaded {len(data)} row(s) into {model}: "
f"{len(result.get('ids', []))} OK, " # <-- hier
f"{len(result.get('messages', []))} messages"
)
Odoo's load() geeft bij een mislukte import {'ids': None, 'messages': [...]} terug. .get('ids', []) levert dan None (de default slaat niet aan, de key bestaat), en len(None) gooit TypeError: object of type 'NoneType' has no len().
Impact
De TypeError ontstaat in de logregel, na een geslaagde RPC. Gevolg: result['messages'] -- precies de per-rij validatiefouten die de gebruiker nodig heeft om de import te repareren -- wordt weggegooid en de AI krijgt een generieke crash terug in plaats van "regel 3: veld country_id: waarde 'Nederlan' niet gevonden".
Fix
len(result.get("ids") or []) op beide plekken, en de messages doorgeven in het toolantwoord wanneer ids leeg is.
Uit PostHog (
mcp_tool_called, prod, 4 weken t/m 2026-09-05): 226 errored calls meterror_type=TypeErroropmethod=load_records, verspreid over 52 gebruikers. Geen enkele andere methode produceert TypeErrors op die schaal.Oorzaak
mcp_server_odoo/odoo_connection/orm.py:322-325enmcp_server_odoo/odoo_json2_orm.py:181-185:Odoo's
load()geeft bij een mislukte import{'ids': None, 'messages': [...]}terug..get('ids', [])levert danNone(de default slaat niet aan, de key bestaat), enlen(None)gooitTypeError: object of type 'NoneType' has no len().Impact
De TypeError ontstaat in de logregel, na een geslaagde RPC. Gevolg:
result['messages']-- precies de per-rij validatiefouten die de gebruiker nodig heeft om de import te repareren -- wordt weggegooid en de AI krijgt een generieke crash terug in plaats van "regel 3: veld country_id: waarde 'Nederlan' niet gevonden".Fix
len(result.get("ids") or [])op beide plekken, en demessagesdoorgeven in het toolantwoord wanneeridsleeg is.