<ul dir="auto">
<li>Neo4j version: 4.4</li>
<li>Operating system: centos</li>
<li>API/Driver: neo4j-admin import</li>
</ul>
<p dir="auto">Hi,</p>
<p dir="auto">After upgrading to neo4j 4.4 I noticed that my neo4j-admin import generated duplicate id's, about 15 on a total of 6M or so nodes.</p>
<p dir="auto">After further investigation it looks like some of the records from the csv's were misinterpreted, whereby fields from different records were combined, causing these duplicate id's.</p>
<p dir="auto">After downgrading to 4.3.7-1 these same csv files were correcly imported again</p>
<p dir="auto">The vat field is the unique id here and as you can see it appears twice in neo4j after the import:</p>
<div class="snippet-clipboard-content notranslate position-relative overflow-auto" data-snippet-clipboard-copy-content="neo4j@graph.db&gt; MATCH (c:Company) WHERE id(c) = 336488 OR id(c) = 3332 RETURN c.vat, c.nameNl, c.nameFr;
+----------------------------------------------------------------------------------------------------------------------------------------------+
| c.vat                                    | c.nameNl                                        | c.nameFr                                        |
+----------------------------------------------------------------------------------------------------------------------------------------------+
| &quot;A-LDN-36-FUNDASERIESOFAX-POAL-FUNDSLLC&quot; | &quot;A-LDN-36-Fund, a series of AX-PoAl-Funds, LLC&quot; | &quot;A-LDN-36-Fund, a series of AX-PoAl-Funds, LLC&quot; |
| &quot;A-LDN-36-FUNDASERIESOFAX-POAL-FUNDSLLC&quot; | &quot;SCHAFTFURINVESTMENTFONDSMBH&quot;                   | &quot;A-HKG-28-FUNDASERIESOFANGELLIST-BARS-FUNDSLLC&quot; |
+----------------------------------------------------------------------------------------------------------------------------------------------+"><pre class="notranslate"><code class="notranslate">neo4j@graph.db&gt; MATCH (c:Company) WHERE id(c) = 336488 OR id(c) = 3332 RETURN c.vat, c.nameNl, c.nameFr;
+----------------------------------------------------------------------------------------------------------------------------------------------+
| c.vat                                    | c.nameNl                                        | c.nameFr                                        |
+----------------------------------------------------------------------------------------------------------------------------------------------+
| "A-LDN-36-FUNDASERIESOFAX-POAL-FUNDSLLC" | "A-LDN-36-Fund, a series of AX-PoAl-Funds, LLC" | "A-LDN-36-Fund, a series of AX-PoAl-Funds, LLC" |
| "A-LDN-36-FUNDASERIESOFAX-POAL-FUNDSLLC" | "SCHAFTFURINVESTMENTFONDSMBH"                   | "A-HKG-28-FUNDASERIESOFANGELLIST-BARS-FUNDSLLC" |
+----------------------------------------------------------------------------------------------------------------------------------------------+
</code></pre></div>
<p dir="auto">It only appears once in the csv files:</p>
<div class="snippet-clipboard-content notranslate position-relative overflow-auto" data-snippet-clipboard-copy-content="cat organizations.csv/* | grep &quot;A-LDN-36-FUNDASERIESOFAX-POAL-FUNDSLLC&quot;
A-LDN-36-FUNDASERIESOFAX-POAL-FUNDSLLC,,,,,&quot;A-LDN-36-Fund, a series of AX-PoAl-Funds, LLC&quot;,&quot;A-LDN-36-Fund, a series of AX-PoAl-Funds, LLC&quot;,,,,,,,,,,,,,,,,,US,001,,,,,,,,,,,,,true,false,NBB,0,0,0,0,0,false,false,false,false,true,true,false,,,,,,,,,,,,,,false,,,0,,,"><pre class="notranslate"><code class="notranslate">cat organizations.csv/* | grep "A-LDN-36-FUNDASERIESOFAX-POAL-FUNDSLLC"
A-LDN-36-FUNDASERIESOFAX-POAL-FUNDSLLC,,,,,"A-LDN-36-Fund, a series of AX-PoAl-Funds, LLC","A-LDN-36-Fund, a series of AX-PoAl-Funds, LLC",,,,,,,,,,,,,,,,,US,001,,,,,,,,,,,,,true,false,NBB,0,0,0,0,0,false,false,false,false,true,true,false,,,,,,,,,,,,,,false,,,0,,,
</code></pre></div>
<p dir="auto">This means that the first appearance in the neo4j result (where nameNl = "A-LDN-36-Fund, a series of AX-PoAl-Funds, LLC") is the correct one.</p>
<p dir="auto">I tried to find a trace of where that second record came from but it seems to have been resembled from multiple records:</p>
<div class="snippet-clipboard-content notranslate position-relative overflow-auto" data-snippet-clipboard-copy-content="cat organizations.csv/* | grep &quot;A-HKG-28-FUNDASERIESOFANGELLIST-BARS-FUNDSLLC&quot;
A-HKG-28-FUNDASERIESOFANGELLIST-BARS-FUNDSLLC,,,,,&quot;A-HKG-28-Fund, a series of AngelList-BaRs-Funds, LLC&quot;,&quot;A-HKG-28-Fund, a series of AngelList-BaRs-Funds, LLC&quot;,,,,,,,,,,,,,,,,,US,001,,,,,,,,,,,,,true,false,NBB,0,0,0,0,0,false,false,false,false,true,true,false,,,,,,,,,,,,,,false,,,0,,,"><pre class="notranslate"><code class="notranslate">cat organizations.csv/* | grep "A-HKG-28-FUNDASERIESOFANGELLIST-BARS-FUNDSLLC"
A-HKG-28-FUNDASERIESOFANGELLIST-BARS-FUNDSLLC,,,,,"A-HKG-28-Fund, a series of AngelList-BaRs-Funds, LLC","A-HKG-28-Fund, a series of AngelList-BaRs-Funds, LLC",,,,,,,,,,,,,,,,,US,001,,,,,,,,,,,,,true,false,NBB,0,0,0,0,0,false,false,false,false,true,true,false,,,,,,,,,,,,,,false,,,0,,,
</code></pre></div>
<div class="snippet-clipboard-content notranslate position-relative overflow-auto" data-snippet-clipboard-copy-content="cat organizations.csv/* | grep SCHAFTFURINVESTMENTFONDSMBH
WESTINVESTGESELLSCHAFTFURINVESTMENTFONDSMBH,Düsseldorf,Konigshof Hamborner Strasse,55,40472,Westinvest Gesellschaft für Investmentfonds mbH,Westinvest Gesellschaft für Investmentfonds mbH,,,,,,,,,,,,,,,,,DE,001,,,,,,,,,,,,,true,false,NBB,0,0,0,0,0,false,false,false,false,true,true,false,,,,,,,,,,,,,,false,,,0,,,"><pre class="notranslate"><code class="notranslate">cat organizations.csv/* | grep SCHAFTFURINVESTMENTFONDSMBH
WESTINVESTGESELLSCHAFTFURINVESTMENTFONDSMBH,Düsseldorf,Konigshof Hamborner Strasse,55,40472,Westinvest Gesellschaft für Investmentfonds mbH,Westinvest Gesellschaft für Investmentfonds mbH,,,,,,,,,,,,,,,,,DE,001,,,,,,,,,,,,,true,false,NBB,0,0,0,0,0,false,false,false,false,true,true,false,,,,,,,,,,,,,,false,,,0,,,
</code></pre></div>
<p dir="auto">As I was building and re-building my 4Gb csv, I was thinking: Why not have the possibility to skip errors ? I am going to get some small errors anyway and I don't care about loosing 0.1% of my data.</p>
<p dir="auto">So I propose adding a <code class="notranslate">--skip-errors</code> flag to ne4j-import.</p>