throw IAE if provider or datset not set