array creation also steals a reference on failure so we here only own one