Data Import Through Bench Keeps Failing

I found that the data import through bench keeps failing, it seems it is a bug of the frappe data-import.

bench --site site2.local data-import --file /home/erpadmin/frappe-bench/sites/site2.local/private/files/20260111itemr4.csv --doctype "Item" --type insert 
Traceback (most recent call last): File "/usr/lib/python3.10/runpy.py", line 196, in _run_module_as_main return _run_code(code, main_globals, None, File "/usr/lib/python3.10/runpy.py", line 86, in _run_code exec(code, run_globals) File "/home/erpadmin/frappe-bench/apps/frappe/frappe/utils/bench_helper.py", 
line 114, in <module> main() File "/home/erpadmin/frappe-bench/apps/frappe/frappe/utils/bench_helper.py", 
line 20, in main click.Group(commands=commands)(prog_name="bench") File "/home/erpadmin/frappe-bench/env/lib/python3.10/site-packages/click/core.py", line 1442, in call return self.main(*args, **kwargs) File "/home/erpadmin/frappe-bench/env/lib/python3.10/site-packages/click/core.py", 
line 1363, in main rv = self.invoke(ctx) File "/home/erpadmin/frappe-bench/env/lib/python3.10/site-packages/click/core.py", 
line 1830, in invoke return _process_result(sub_ctx.command.invoke(sub_ctx)) File "/home/erpadmin/frappe-bench/env/lib/python3.10/site-packages/click/core.py", 
line 1830, in invoke return _process_result(sub_ctx.command.invoke(sub_ctx)) File "/home/erpadmin/frappe-bench/env/lib/python3.10/site-packages/click/core.py", 
line 1226, in invoke return ctx.invoke(self.callback, **ctx.params) File "/home/erpadmin/frappe-bench/env/lib/python3.10/site-packages/click/core.py", 
line 794, in invoke return callback(*args, **kwargs) File "/home/erpadmin/frappe-bench/env/lib/python3.10/site-packages/click/decorators.py", 
line 34, in new_func return f(get_current_context(), *args, **kwargs) File "/home/erpadmin/frappe-bench/apps/frappe/frappe/commands/init.py", 
line 29, in _func ret = f(frappe._dict(ctx.obj), *args, **kwargs) File "/home/erpadmin/frappe-bench/apps/frappe/frappe/commands/utils.py", 
line 443, in data_import import_file(doctype, file_path, import_type, submit_after_import, console=True) File "/home/erpadmin/frappe-bench/apps/frappe/frappe/core/doctype/data_import/data_import.py", 
line 277, in import_file i.import_data() File "/home/erpadmin/frappe-bench/apps/frappe/frappe/core/doctype/data_import/importer.py", 
line 117, in import_data if log.success or len(import_log) < self.data_import.payload_count: TypeError: '<' not supported between instances of 'int' and 'NoneType'

It seems that this is the issue:

  • payload_count is supposed to be set when the Data Import record is created.

  • In CLI imports (bench data-import), sometimes the Data Import document isn’t fully initialized, leaving payload_count as None.

  • That makes the comparison invalid (int < NoneType).

I cannot import through bench suddenly after latest update