Zavod eu_fsf dataset broken?

Greetings.

When i run zavod run --latest datasets/eu/fsf/eu_fsf.yml i get a bunch of warnings the following error (especially note the SQL insert error on the end). Other datasets run just fine without errors. Is this a known bug?

Note: a entities.ftm.json is created despite the error, but i feel its incomplete as my file is 9MB and the download on the website is 13MB?

e[2m2025-10-16 20:25:08e[0m [e[32me[1minfo     e[0m] e[1mRunning dataset               e[0m [e[0me[1me[34meu_fsfe[0m]e[0m e[36mdata_pathe[0m=e[35mdatasets/eu_fsfe[0m e[36mdata_timee[0m=e[35m2025-10-16T20:25:07e[0m e[36mdatasete[0m=e[35meu_fsfe[0m e[36mversione[0m=e[35m20251016202507-gxje[0m
e[2m2025-10-16 20:25:08e[0m [e[32me[1minfo     e[0m] e[1mFetching file                 e[0m [e[0me[1me[34mzavod.runtime.http_e[0m]e[0m e[36mdatasete[0m=e[35meu_fsfe[0m e[36murle[0m=e[35m'https://webgate.ec.europa.eu/fsd/fsf/public/files/xmlFullSanctionsList_1_1/content?token=dG9rZW4tMjAxNw'e[0m
e[2m2025-10-16 20:25:16e[0m [e[33me[1mwarning  e[0m] e[1mProgram with key 'EU-IRQ' not found.e[0m [e[0me[1me[34meu_fsfe[0m]e[0m e[36mdatasete[0m=e[35meu_fsfe[0m e[36mentity_ide[0m=e[35meu-fsf-eu-27-28e[0m
e[2m2025-10-16 20:25:16e[0m [e[32me[1minfo     e[0m] e[1mBuilding timestamp index...   e[0m [e[0me[1me[34mzavod.runtime.timestampse[0m]e[0m e[36mdatasete[0m=e[35meu_fsfe[0m
e[2m2025-10-16 20:25:16e[0m [e[32me[1minfo     e[0m] e[1mIndex ready.                  e[0m [e[0me[1me[34mzavod.runtime.timestampse[0m]e[0m e[36mcounte[0m=e[35m0e[0m e[36mdatasete[0m=e[35meu_fsfe[0m
e[2m2025-10-16 20:25:17e[0m [e[33me[1mwarning  e[0m] e[1mProgram with key 'EU-IRQ' not found.e[0m [e[0me[1me[34meu_fsfe[0m]e[0m e[36mdatasete[0m=e[35meu_fsfe[0m e[36mentity_ide[0m=e[35meu-fsf-eu-39-56e[0m
e[2m2025-10-16 20:25:17e[0m [e[33me[1mwarning  e[0m] e[1mProgram with key 'EU-IRQ' not found.e[0m [e[0me[1me[34meu_fsfe[0m]e[0m e[36mdatasete[0m=e[35meu_fsfe[0m e[36mentity_ide[0m=e[35meu-fsf-eu-16-62e[0m
e[SHORTENED FOR READABILITY]
e[2m2025-10-16 20:25:17e[0m [e[33me[1mwarning  e[0m] e[1mProgram with key 'EU-IRQ' not found.e[0m [e[0me[1me[34meu_fsfe[0m]e[0m e[36mdatasete[0m=e[35meu_fsfe[0m e[36mentity_ide[0m=e[35meu-fsf-eu-69-59e[0m
e[2m2025-10-16 20:25:17e[0m [e[33me[1mwarning  e[0m] e[1mProgram with key 'EU-IRQ' not found.e[0m [e[0me[1me[34meu_fsfe[0m]e[0m e[36mdatasete[0m=e[35meu_fsfe[0m e[36mentity_ide[0m=e[35meu-fsf-eu-71-49e[0m
e[2m2025-10-16 20:25:17e[0m [e[33me[1mwarning  e[0m] e[1mProgram with key 'EU-IRQ' not found.e[0m [e[0me[1me[34meu_fsfe[0m]e[0m e[36mdatasete[0m=e[35meu_fsfe[0m e[36mentity_ide[0m=e[35meu-fsf-eu-77-33e[0m
e[2m2025-10-16 20:25:17e[0m [e[33me[1mwarning  e[0m] e[1mProgram with key 'EU-IRQ' not found.e[0m [e[0me[1me[34meu_fsfe[0m]e[0m e[36mdatasete[0m=e[35meu_fsfe[0m e[36mentity_ide[0m=e[35meu-fsf-eu-89-61e[0m
e[2m2025-10-16 20:25:17e[0m [e[33me[1mwarning  e[0m] e[1mProgram with key 'EU-IRQ' not found.e[0m [e[0me[1me[34meu_fsfe[0m]e[0m e[36mdatasete[0m=e[35meu_fsfe[0m e[36mentity_ide[0m=e[35meu-fsf-eu-97-35e[0m
e[2m2025-10-16 20:25:17e[0m [e[33me[1mwarning  e[0m] e[1mProgram with key 'EU-IRQ' not found.e[0m [e[0me[1me[34meu_fsfe[0m]e[0m e[36mdatasete[0m=e[35meu_fsfe[0m e[36mentity_ide[0m=e[35meu-fsf-eu-59-58e[0m
e[2m2025-10-16 20:25:17e[0m [e[33me[1mwarning  e[0m] e[1mProgram with key 'EU-IRQ' not found.e[0m [e[0me[1me[34meu_fsfe[0m]e[0m e[36mdatasete[0m=e[35meu_fsfe[0m e[36mentity_ide[0m=e[35meu-fsf-eu-62-13e[0m
e[2m2025-10-16 20:25:17e[0m [e[33me[1mwarning  e[0m] e[1mProgram with key 'EU-IRQ' not found.e[0m [e[0me[1me[34meu_fsfe[0m]e[0m e[36mdatasete[0m=e[35meu_fsfe[0m e[36mentity_ide[0m=e[35meu-fsf-eu-63-75e[0m
e[2m2025-10-16 20:25:17e[0m [e[33me[1mwarning  e[0m] e[1mProgram with key 'EU-IRQ' not found.e[0m [e[0me[1me[34meu_fsfe[0m]e[0m e[36mdatasete[0m=e[35meu_fsfe[0m e[36mentity_ide[0m=e[35meu-fsf-eu-65-5e[0m
e[2m2025-10-16 20:25:17e[0m [e[33me[1mwarning  e[0m] e[1mProgram with key 'EU-IRQ' not found.e[0m [e[0me[1me[34meu_fsfe[0m]e[0m e[36mdatasete[0m=e[35meu_fsfe[0m e[36mentity_ide[0m=e[35meu-fsf-eu-150-25e[0m
e[2m2025-10-16 20:25:17e[0m [e[33me[1mwarning  e[0m] e[1mProgram with key 'EU-IRQ' not found.e[0m [e[0me[1me[34meu_fsfe[0m]e[0m e[36mdatasete[0m=e[35meu_fsfe[0m e[36mentity_ide[0m=e[35meu-fsf-eu-153-28e[0m
e[2m2025-10-16 20:25:17e[0m [e[33me[1mwarning  e[0m] e[1mProgram with key 'EU-IRQ' not found.e[0m [e[0me[1me[34meu_fsfe[0m]e[0m e[36mdatasete[0m=e[35meu_fsfe[0m e[36mentity_ide[0m=e[35meu-fsf-eu-134-2e[0m
e[2m2025-10-16 20:25:17e[0m [e[33me[1mwarning  e[0m] e[1mProgram with key 'EU-IRQ' not found.e[0m [e[0me[1me[34meu_fsfe[0m]e[0m e[36mdatasete[0m=e[35meu_fsfe[0m e[36mentity_ide[0m=e[35meu-fsf-eu-90-86e[0m
e[2m2025-10-16 20:25:17e[0m [e[33me[1mwarning  e[0m] e[1mProgram with key 'EU-UKR' not found.e[0m [e[0me[1me[34meu_fsfe[0m]e[0m e[36mdatasete[0m=e[35meu_fsfe[0m e[36mentity_ide[0m=e[35meu-fsf-eu-3935-95e[0m
e[2m2025-10-16 20:25:17e[0m [e[33me[1mwarning  e[0m] e[1mProgram with key 'EU-UKR' not found.e[0m [e[0me[1me[34meu_fsfe[0m]e[0m e[36mdatasete[0m=e[35meu_fsfe[0m e[36mentity_ide[0m=e[35meu-fsf-eu-4033-93e[0m
e[2m2025-10-16 20:25:17e[0m [e[33me[1mwarning  e[0m] e[1mProgram with key 'EU-UKR' not found.e[0m [e[0me[1me[34meu_fsfe[0m]e[0m e[36mdatasete[0m=e[35meu_fsfe[0m e[36mentity_ide[0m=e[35meu-fsf-eu-3936-60e[0m
e[2m2025-10-16 20:25:17e[0m [e[33me[1mwarning  e[0m] e[1mProgram with key 'EU-UKR' not found.e[0m [e[0me[1me[34meu_fsfe[0m]e[0m e[36mdatasete[0m=e[35meu_fsfe[0m e[36mentity_ide[0m=e[35meu-fsf-eu-3483-54e[0m
e[2m2025-10-16 20:25:17e[0m [e[33me[1mwarning  e[0m] e[1mProgram with key 'EU-UKR' not found.e[0m [e[0me[1me[34meu_fsfe[0m]e[0m e[36mdatasete[0m=e[35meu_fsfe[0m 
e[2m2025-10-16 20:25:24e[0m [e[32me[1minfo     e[0m] e[1mExported: Target names text filee[0m [e[0me[1me[34meu_fsfe[0m]e[0m e[36mdatasete[0m=e[35meu_fsfe[0m e[36mpathe[0m=e[35mdatasets/eu_fsf/names.txte[0m e[36msizee[0m=e[35m1038607e[0m
e[2m2025-10-16 20:25:24e[0m [e[32me[1minfo     e[0m] e[1mExported: Dataset statistics  e[0m [e[0me[1me[34meu_fsfe[0m]e[0m e[36mdatasete[0m=e[35meu_fsfe[0m e[36mpathe[0m=e[35mdatasets/eu_fsf/statistics.jsone[0m e[36msizee[0m=e[35m15557e[0m
e[2m2025-10-16 20:25:24e[0m [e[32me[1minfo     e[0m] e[1mExported: Targets as simplified CSVe[0m [e[0me[1me[34meu_fsfe[0m]e[0m e[36mdatasete[0m=e[35meu_fsfe[0m e[36mpathe[0m=e[35mdatasets/eu_fsf/targets.simple.csve[0m e[36msizee[0m=e[35m2424016e[0m
e[2m2025-10-16 20:25:24e[0m [e[32me[1minfo     e[0m] e[1mExported: Targets as nested JSONe[0m [e[0me[1me[34meu_fsfe[0m]e[0m e[36mdatasete[0m=e[35meu_fsfe[0m e[36mpathe[0m=e[35mdatasets/eu_fsf/targets.nested.jsone[0m e[36msizee[0m=e[35m10194226e[0m
e[2m2025-10-16 20:25:24e[0m [e[32me[1minfo     e[0m] e[1mWriting delta versions index...e[0m [e[0me[1me[34mzavod.exporters.metadatae[0m]e[0m e[36mdatasete[0m=e[35meu_fsfe[0m e[36mpathe[0m=e[35m/Users/sbz/code/opensanctions/data/datasets/eu_fsf/delta.jsone[0m
e[2m2025-10-16 20:25:24e[0m [e[32me[1minfo     e[0m] e[1mWriting dataset index         e[0m [e[0me[1me[34mzavod.exporters.metadatae[0m]e[0m e[36mdatasete[0m=e[35meu_fsfe[0m e[36mis_collectione[0m=e[35mFalsee[0m e[36mpathe[0m=e[35mdatasets/eu_fsf/index.jsone[0m e[36mversione[0m=e[35m20251016202507-gxje[0m
e[2m2025-10-16 20:25:24e[0m [e[32me[1minfo     e[0m] e[1mExported dataset: eu_fsf      e[0m [e[0me[1me[34mzavod.exporterse[0m]e[0m e[36mdatasete[0m=e[35meu_fsfe[0m
e[2m2025-10-16 20:25:24e[0m [e[32me[1minfo     e[0m] e[1mCopying file: entities.ftm.json to archivee[0m [e[0me[1me[34mzavod.archive.backende[0m]e[0m e[36mdatasete[0m=e[35meu_fsfe[0m e[36mdeste[0m=e[35marchive/datasets/20251016/eu_fsf/entities.ftm.jsone[0m e[36msourcee[0m=e[35mdatasets/eu_fsf/entities.ftm.jsone[0m
e[2m2025-10-16 20:25:24e[0m [e[32me[1minfo     e[0m] e[1mCopying file: entities.ftm.json to archivee[0m [e[0me[1me[34mzavod.archive.backende[0m]e[0m e[36mdatasete[0m=e[35meu_fsfe[0m e[36mdeste[0m=e[35marchive/datasets/latest/eu_fsf/entities.ftm.jsone[0m e[36msourcee[0m=e[35marchive/datasets/20251016/eu_fsf/entities.ftm.jsone[0m
e[2m2025-10-16 20:25:24e[0m [e[32me[1minfo     e[0m] e[1mCopying file: names.txt to archivee[0m [e[0me[1me[34mzavod.archive.backende[0m]e[0m e[36mdatasete[0m=e[35meu_fsfe[0m e[36mdeste[0m=e[35marchive/datasets/20251016/eu_fsf/names.txte[0m e[36msourcee[0m=e[35mdatasets/eu_fsf/names.txte[0m
e[2m2025-10-16 20:25:24e[0m [e[32me[1minfo     e[0m] e[1mCopying file: names.txt to archivee[0m [e[0me[1me[34mzavod.archive.backende[0m]e[0m e[36mdatasete[0m=e[35meu_fsfe[0m e[36mdeste[0m=e[35marchive/datasets/latest/eu_fsf/names.txte[0m e[36msourcee[0m=e[35marchive/datasets/20251016/eu_fsf/names.txte[0m
e[2m2025-10-16 20:25:24e[0m [e[32me[1minfo     e[0m] e[1mCopying file: senzing.json to archivee[0m [e[0me[1me[34mzavod.archive.backende[0m]e[0m e[36mdatasete[0m=e[35meu_fsfe[0m e[36mdeste[0m=e[35marchive/datasets/20251016/eu_fsf/senzing.jsone[0m e[36msourcee[0m=e[35mdatasets/eu_fsf/senzing.jsone[0m
e[2m2025-10-16 20:25:24e[0m [e[32me[1minfo     e[0m] e[1mCopying file: senzing.json to archivee[0m [e[0me[1me[34mzavod.archive.backende[0m]e[0m e[36mdatasete[0m=e[35meu_fsfe[0m e[36mdeste[0m=e[35marchive/datasets/latest/eu_fsf/senzing.jsone[0m e[36msourcee[0m=e[35marchive/datasets/20251016/eu_fsf/senzing.jsone[0m
e[2m2025-10-16 20:25:24e[0m [e[32me[1minfo     e[0m] e[1mCopying file: source.xml to archivee[0m [e[0me[1me[34mzavod.archive.backende[0m]e[0m e[36mdatasete[0m=e[35meu_fsfe[0m e[36mdeste[0m=e[35marchive/datasets/20251016/eu_fsf/source.xmle[0m e[36msourcee[0m=e[35mdatasets/eu_fsf/source.xmle[0m
e[2m2025-10-16 20:25:24e[0m [e[32me[1minfo     e[0m] e[1mCopying file: source.xml to archivee[0m [e[0me[1me[34mzavod.archive.backende[0m]e[0m e[36mdatasete[0m=e[35meu_fsfe[0m e[36mdeste[0m=e[35marchive/datasets/latest/eu_fsf/source.xmle[0m e[36msourcee[0m=e[35marchive/datasets/20251016/eu_fsf/source.xmle[0m
e[2m2025-10-16 20:25:24e[0m [e[32me[1minfo     e[0m] e[1mCopying file: targets.nested.json to archivee[0m [e[0me[1me[34mzavod.archive.backende[0m]e[0m e[36mdatasete[0m=e[35meu_fsfe[0m e[36mdeste[0m=e[35marchive/datasets/20251016/eu_fsf/targets.nested.jsone[0m e[36msourcee[0m=e[35mdatasets/eu_fsf/targets.nested.jsone[0m
e[2m2025-10-16 20:25:24e[0m [e[32me[1minfo     e[0m] e[1mCopying file: targets.nested.json to archivee[0m [e[0me[1me[34mzavod.archive.backende[0m]e[0m e[36mdatasete[0m=e[35meu_fsfe[0m e[36mdeste[0m=e[35marchive/datasets/latest/eu_fsf/targets.nested.jsone[0m e[36msourcee[0m=e[35marchive/datasets/20251016/eu_fsf/targets.nested.jsone[0m
e[2m2025-10-16 20:25:24e[0m [e[32me[1minfo     e[0m] e[1mCopying file: targets.simple.csv to archivee[0m [e[0me[1me[34mzavod.archive.backende[0m]e[0m e[36mdatasete[0m=e[35meu_fsfe[0m e[36mdeste[0m=e[35marchive/datasets/20251016/eu_fsf/targets.simple.csve[0m e[36msourcee[0m=e[35mdatasets/eu_fsf/targets.simple.csve[0m
e[2m2025-10-16 20:25:24e[0m [e[32me[1minfo     e[0m] e[1mCopying file: targets.simple.csv to archivee[0m [e[0me[1me[34mzavod.archive.backende[0m]e[0m e[36mdatasete[0m=e[35meu_fsfe[0m e[36mdeste[0m=e[35marchive/datasets/latest/eu_fsf/targets.simple.csve[0m e[36msourcee[0m=e[35marchive/datasets/20251016/eu_fsf/targets.simple.csve[0m
e[2m2025-10-16 20:25:24e[0m [e[32me[1minfo     e[0m] e[1mCopying file: index.json to archivee[0m [e[0me[1me[34mzavod.archive.backende[0m]e[0m e[36mdatasete[0m=e[35meu_fsfe[0m e[36mdeste[0m=e[35marchive/datasets/20251016/eu_fsf/index.jsone[0m e[36msourcee[0m=e[35mdatasets/eu_fsf/index.jsone[0m
e[2m2025-10-16 20:25:24e[0m [e[32me[1minfo     e[0m] e[1mCopying file: index.json to archivee[0m [e[0me[1me[34mzavod.archive.backende[0m]e[0m e[36mdatasete[0m=e[35meu_fsfe[0m e[36mdeste[0m=e[35marchive/datasets/latest/eu_fsf/index.jsone[0m e[36msourcee[0m=e[35marchive/datasets/20251016/eu_fsf/index.jsone[0m
e[2m2025-10-16 20:25:24e[0m [e[32me[1minfo     e[0m] e[1mCopying file: issues.json to archivee[0m [e[0me[1me[34mzavod.archive.backende[0m]e[0m e[36mdatasete[0m=e[35meu_fsfe[0m e[36mdeste[0m=e[35marchive/artifacts/eu_fsf/20251016202507-gxj/issues.jsone[0m e[36msourcee[0m=e[35mdatasets/eu_fsf/issues.jsone[0m
e[2m2025-10-16 20:25:24e[0m [e[32me[1minfo     e[0m] e[1mCopying file: issues.log to archivee[0m [e[0me[1me[34mzavod.archive.backende[0m]e[0m e[36mdatasete[0m=e[35meu_fsfe[0m e[36mdeste[0m=e[35marchive/artifacts/eu_fsf/20251016202507-gxj/issues.loge[0m e[36msourcee[0m=e[35mdatasets/eu_fsf/issues.loge[0m
e[2m2025-10-16 20:25:24e[0m [e[32me[1minfo     e[0m] e[1mCopying file: index.json to archivee[0m [e[0me[1me[34mzavod.archive.backende[0m]e[0m e[36mdatasete[0m=e[35meu_fsfe[0m e[36mdeste[0m=e[35marchive/artifacts/eu_fsf/20251016202507-gxj/index.jsone[0m e[36msourcee[0m=e[35mdatasets/eu_fsf/index.jsone[0m
e[2m2025-10-16 20:25:24e[0m [e[32me[1minfo     e[0m] e[1mCopying file: statements.pack to archivee[0m [e[0me[1me[34mzavod.archive.backende[0m]e[0m e[36mdatasete[0m=e[35meu_fsfe[0m e[36mdeste[0m=e[35marchive/artifacts/eu_fsf/20251016202507-gxj/statements.packe[0m e[36msourcee[0m=e[35mdatasets/eu_fsf/statements.packe[0m
e[2m2025-10-16 20:25:24e[0m [e[32me[1minfo     e[0m] e[1mCopying file: statistics.json to archivee[0m [e[0me[1me[34mzavod.archive.backende[0m]e[0m e[36mdatasete[0m=e[35meu_fsfe[0m e[36mdeste[0m=e[35marchive/artifacts/eu_fsf/20251016202507-gxj/statistics.jsone[0m e[36msourcee[0m=e[35mdatasets/eu_fsf/statistics.jsone[0m
e[2m2025-10-16 20:25:24e[0m [e[32me[1minfo     e[0m] e[1mCopying file: versions.json to archivee[0m [e[0me[1me[34mzavod.archive.backende[0m]e[0m e[36mdatasete[0m=e[35meu_fsfe[0m e[36mdeste[0m=e[35marchive/artifacts/eu_fsf/20251016202507-gxj/versions.jsone[0m e[36msourcee[0m=e[35mdatasets/eu_fsf/versions.jsone[0m
e[2m2025-10-16 20:25:24e[0m [e[32me[1minfo     e[0m] e[1mCopying file: resources.json to archivee[0m [e[0me[1me[34mzavod.archive.backende[0m]e[0m e[36mdatasete[0m=e[35meu_fsfe[0m e[36mdeste[0m=e[35marchive/artifacts/eu_fsf/20251016202507-gxj/resources.jsone[0m e[36msourcee[0m=e[35mdatasets/eu_fsf/resources.jsone[0m
e[2m2025-10-16 20:25:24e[0m [e[32me[1minfo     e[0m] e[1mCopying file: entities.delta.json to archivee[0m [e[0me[1me[34mzavod.archive.backende[0m]e[0m e[36mdatasete[0m=e[35meu_fsfe[0m e[36mdeste[0m=e[35marchive/artifacts/eu_fsf/20251016202507-gxj/entities.delta.jsone[0m e[36msourcee[0m=e[35mdatasets/eu_fsf/entities.delta.jsone[0m
e[2m2025-10-16 20:25:24e[0m [e[32me[1minfo     e[0m] e[1mCopying file: delta.json to archivee[0m [e[0me[1me[34mzavod.archive.backende[0m]e[0m e[36mdatasete[0m=e[35meu_fsfe[0m e[36mdeste[0m=e[35marchive/artifacts/eu_fsf/20251016202507-gxj/delta.jsone[0m e[36msourcee[0m=e[35mdatasets/eu_fsf/delta.jsone[0m
e[2m2025-10-16 20:25:24e[0m [e[32me[1minfo     e[0m] e[1mCopying file: entities.hash to archivee[0m [e[0me[1me[34mzavod.archive.backende[0m]e[0m e[36mdatasete[0m=e[35meu_fsfe[0m e[36mdeste[0m=e[35marchive/artifacts/eu_fsf/20251016202507-gxj/entities.hashe[0m e[36msourcee[0m=e[35mdatasets/eu_fsf/entities.hashe[0m
e[2m2025-10-16 20:25:24e[0m [e[32me[1minfo     e[0m] e[1mCopying file: versions.json to archivee[0m [e[0me[1me[34mzavod.archive.backende[0m]e[0m e[36mdatasete[0m=e[35meu_fsfe[0m e[36mdeste[0m=e[35marchive/artifacts/eu_fsf/versions.jsone[0m e[36msourcee[0m=e[35mdatasets/eu_fsf/versions.jsone[0m
e[2m2025-10-16 20:25:24e[0m [e[32me[1minfo     e[0m] e[1mLoading dataset into database...e[0m [e[0me[1me[34mzavod.clie[0m]e[0m e[36mdatasete[0m=e[35meu_fsfe[0m
e[2m2025-10-16 20:25:24e[0m [e[32me[1minfo     e[0m] e[1mInserting batch 3000 statements (total: 3000) into 'eu_fsf'e[0m [e[0me[1me[34mnomenklatura.dbe[0m]e[0m e[36mdatasete[0m=e[35meu_fsfe[0m
e[2m2025-10-16 20:25:24e[0m [e[31me[1merror    e[0m] e[1mFailed to export and publish 'eu_fsf'e[0m [e[0me[1me[34mzavod.clie[0m]e[0m e[36mdatasete[0m=e[35meu_fsfe[0m
Traceback (most recent call last):
  File "/Users/sbz/code/opensanctions/zavod/.venv/lib/python3.13/site-packages/sqlalchemy/engine/base.py", line 1967, in _exec_single_context
    self.dialect.do_execute(
    ~~~~~~~~~~~~~~~~~~~~~~~^
        cursor, str_statement, effective_parameters, context
        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
    )
    ^
  File "/Users/sbz/code/opensanctions/zavod/.venv/lib/python3.13/site-packages/sqlalchemy/engine/default.py", line 951, in do_execute
    cursor.execute(statement, parameters)
    ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^
sqlite3.OperationalError: too many SQL variables

The above exception was the direct cause of the following exception:

Traceback (most recent call last):
  File "/Users/sbz/code/opensanctions/zavod/zavod/cli.py", line 179, in run
    load_dataset_to_db(dataset, linker, external=False)
    ~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/Users/sbz/code/opensanctions/zavod/zavod/tools/load_db.py", line 32, in load_dataset_to_db
    insert_statements(
    ~~~~~~~~~~~~~~~~~^
        engine,
        ^^^^^^^
    ...<3 lines>...
        batch_size=batch_size,
        ^^^^^^^^^^^^^^^^^^^^^^
    )
    ^
  File "/Users/sbz/code/opensanctions/zavod/.venv/lib/python3.13/site-packages/nomenklatura/db.py", line 125, in insert_statements
    _upsert_statement_batch(engine.dialect, conn, table, batch)
    ~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/Users/sbz/code/opensanctions/zavod/.venv/lib/python3.13/site-packages/nomenklatura/db.py", line 91, in _upsert_statement_batch
    conn.execute(lstmt)
    ~~~~~~~~~~~~^^^^^^^
  File "/Users/sbz/code/opensanctions/zavod/.venv/lib/python3.13/site-packages/sqlalchemy/engine/base.py", line 1419, in execute
    return meth(
        self,
        distilled_parameters,
        execution_options or NO_OPTIONS,
    )
  File "/Users/sbz/code/opensanctions/zavod/.venv/lib/python3.13/site-packages/sqlalchemy/sql/elements.py", line 526, in _execute_on_connection
    return connection._execute_clauseelement(
           ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^
        self, distilled_params, execution_options
        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
    )
    ^
  File "/Users/sbz/code/opensanctions/zavod/.venv/lib/python3.13/site-packages/sqlalchemy/engine/base.py", line 1641, in _execute_clauseelement
    ret = self._execute_context(
        dialect,
    ...<8 lines>...
        cache_hit=cache_hit,
    )
  File "/Users/sbz/code/opensanctions/zavod/.venv/lib/python3.13/site-packages/sqlalchemy/engine/base.py", line 1846, in _execute_context
    return self._exec_single_context(
           ~~~~~~~~~~~~~~~~~~~~~~~~~^
        dialect, context, statement, parameters
        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
    )
    ^
  File "/Users/sbz/code/opensanctions/zavod/.venv/lib/python3.13/site-packages/sqlalchemy/engine/base.py", line 1986, in _exec_single_context
    self._handle_dbapi_exception(
    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~^
        e, str_statement, effective_parameters, cursor, context
        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
    )
    ^
  File "/Users/sbz/code/opensanctions/zavod/.venv/lib/python3.13/site-packages/sqlalchemy/engine/base.py", line 2355, in _handle_dbapi_exception
    raise sqlalchemy_exception.with_traceback(exc_info[2]) from e
  File "/Users/sbz/code/opensanctions/zavod/.venv/lib/python3.13/site-packages/sqlalchemy/engine/base.py", line 1967, in _exec_single_context
    self.dialect.do_execute(
    ~~~~~~~~~~~~~~~~~~~~~~~^
        cursor, str_statement, effective_parameters, context
        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
    )
    ^
  File "/Users/sbz/code/opensanctions/zavod/.venv/lib/python3.13/site-packages/sqlalchemy/engine/default.py", line 951, in do_execute
    cursor.execute(statement, parameters)
    ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^
sqlalchemy.exc.OperationalError: (sqlite3.OperationalError) too many SQL variables
[SQL: INSERT INTO statement (id, entity_id, canonical_id, prop, prop_type, schema, value, original_value, dataset, origin, lang, external, first_seen, last_seen) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?), (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?), (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?), (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?), (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?), (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?), (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?), (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?), (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?), (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?), (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?), (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?), (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?), (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?), (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?), (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?), (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?), (SHORTENED FOR READABILITY) ON CONFLICT (id) DO NOTHING]
[parameters: ('2f2bbfac681c3c61a4b4ec65a8acae2f3d8dbe3d', 'eu-fsf-8c6c5cd54c05cdc9f885803730f4eb3c4e3ea191', 'eu-fsf-8c6c5cd54c05cdc9f885803730f4eb3c4e3ea191', 'entity', 'entity', 'Sanction', 'eu-fsf-eu-27-28', None, 'eu_fsf', '', None, 0, '2025-10-16 20:25:07.000000', '2025-10-16 20:25:07.000000', 'a4325ab9339b5f5fec8cbf3c8bfb7bda1bdef56e', 'eu-fsf-8c6c5cd54c05cdc9f885803730f4eb3c4e3ea191', 'eu-fsf-8c6c5cd54c05cdc9f885803730f4eb3c4e3ea191', 'country', 'country', 'Sanction', 'eu', None, 'eu_fsf', '', None, 0, '2025-10-16 20:25:07.000000', '2025-10-16 20:25:07.000000', '413616cdefeb072fb9a0fec97dad6bd6c5f6739b', 'eu-fsf-8c6c5cd54c05cdc9f885803730f4eb3c4e3ea191', 'eu-fsf-8c6c5cd54c05cdc9f885803730f4eb3c4e3ea191', 'authority', 'string', 'Sanction', 'Directorate‑General for Financial Stability, Financial Services and Capital Markets Union', None, 'eu_fsf', '', None, 0, '2025-10-16 20:25:07.000000', '2025-10-16 20:25:07.000000', 'e247b0900b82a395971fc06d2bf5c309f1eb88b9', 'eu-fsf-8c6c5cd54c05cdc9f885803730f4eb3c4e3ea191', 'eu-fsf-8c6c5cd54c05cdc9f885803730f4eb3c4e3ea191', 'program', 'string', 'Sanction', 'IRQ', None ... 41900 parameters truncated ... 'eu', None, 'eu_fsf', '', None, 0, '2025-10-16 20:25:07.000000', '2025-10-16 20:25:07.000000', '749ce4b429d392843a2a96dcac269d394962f8f6', 'eu-fsf-15caf0e975036730eff77168d179b42008b910ce', 'eu-fsf-15caf0e975036730eff77168d179b42008b910ce', 'authority', 'string', 'Sanction', 'Directorate‑General for Financial Stability, Financial Services and Capital Markets Union', None, 'eu_fsf', '', None, 0, '2025-10-16 20:25:07.000000', '2025-10-16 20:25:07.000000', 'f3c28d9a0ab89b758e8db7dd9f1bc75f3fd7496a', 'eu-fsf-15caf0e975036730eff77168d179b42008b910ce', 'eu-fsf-15caf0e975036730eff77168d179b42008b910ce', 'program', 'string', 'Sanction', 'AFG', None, 'eu_fsf', '', None, 0, '2025-10-16 20:25:07.000000', '2025-10-16 20:25:07.000000', '0b56d4ed07a2be6902edd7643b9d8b2387b6acb4', 'eu-fsf-15caf0e975036730eff77168d179b42008b910ce', 'eu-fsf-15caf0e975036730eff77168d179b42008b910ce', 'sourceUrl', 'url', 'Sanction', 'http://eur-lex.europa.eu/legal-content/EN/TXT/PDF/?uri=CELEX:32017R0404&from=EN', None, 'eu_fsf', '', None, 0, '2025-10-16 20:25:07.000000', '2025-10-16 20:25:07.000000')]
(Background on this error at: https://sqlalche.me/e/20/e3q8)

Hmmmm feels like you may need pip install -U nomenklatura :slight_smile:

Hi @pudo – that shouldn’t be the problem, nomenklatura is installed. And tracelog shows that it is being used and called [...]/python3.13/site-packages/nomenklatura/db.py

The core problem seems to be sqlite3.OperationalError: too many SQL variables

Any idea on this? Happens on some other datasets too.