Dear all, my scenario is a RestXQ: - download resources and store them in temporary directory. - do it with fork-join in order to obtain smaller latency - compress to zip archive and return the archive data. I've noticed often the archive arrives empty. So after investigation I've found that query [1] isnon predictable. It is often optimized to "count(0)". I can manage to produce results from time to time but not consistently with [2]. [3] Seems the safer solution. The behavior is the same with 9.x and 10. Since I do not feel very comfortable, is there someone who can tell me if I'm doing it wrong or if there is a secure solution or if I should abandon fork-join tout-court? Thanks a lot. Regards, Marco. [1] let $ops := ( for $i in (1 to 5) let $url := "http://www.google.com" return function(){ (file:write(file:create-temp-file("ttt",string($i)),fetch:content-type($url))) } ) let $download := xquery:fork-join($ops) return count($ops) [2] let $ops := ( for $i in (1 to 5) let $url := "http://www.google.com" return function(){ (file:write(file:create-temp-file("ttt",string($i)),fetch:content-type($url)),1) } ) let $download := xquery:fork-join($ops) return count($ops) [3] let $ops := xquery:fork-join( for $i in (1 to 5) let $url := "http://www.google.com" return function(){ (1, file:write(file:create-temp-file("ttt",string($i)),fetch:content-type($url))) } ) return count($ops)