as written above shouldn't happen, because finishJob is called after all uploads finished and parts.length should be >= 1
(but ok,  over-optimized removed)