Skip to content

import_records: TypeError bij mislukte load(), Odoo-foutmeldingen bereiken de AI nooit #131

Description

@rutgerhofste

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.

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions