As far as I can see, the problem occurs due to non-unique item ids (Child1, Child2) that are already present in the initial dataset.
For testing you can make ids of the items being parsed within proxy unique by adding the webix.uid() autogenerated id to them.
Also (it’s not connected with this topic) I would recommend you to call the default callback that is passed into the proxy if you need to avoid parsing the same data into the branch.
in the end I decided to create unique ID’s by base64 encoding the full filename and path.
Given no 2 files will have the exact same pathname+filename combination, this solution is fairly robust against collision. Encoding this information in the ID field also allows the client to resolve any information related to the parent without a server side lookup.