The assumption is that contents_info and instances_info has a 1:1 instance match. but contents_info has also contents data. I think better to use contents_info (which includes instances_info data in it) and symlinks_info like this:
[@contents_info.hash,@symlinks_info.hash]