throw badcoersion with detailed info