handle empty snapshot list correctly for has_snapshot?