Async Tree using ListTreeContentProvider


I have a strange problem whereby a list of results, including unique row ids & parent row id’s, is returned to the ListTreeContentProvider. My async tree component has this provider as its value.

The table is displayed fine with the child rows collapsed, but on clicking the tree toggle odd behaviour occurs whereby the parent row can be replaced by another arbitrary parent row and the child row disappears or the child row is correctly displayed but the parent row is different.

I have checked the results provided to the ListTreeContentProvider and all the rows are correct with the parent rows (roots) having parent row id empty and child rows with correct parent row id.

I can see from the developer tools in the browser that when the toggle is clicked the POST form data in the header has the following lines
taskSearchForm:taskSearchResultsAsyncTree__open:open:7 - this is the row number of parent clicked

But the row that is returned in place of row 7 is another parent row and not the child row

The documentation states that

All of which are correct

Any help appreciated