It's better to let the view layer handle Invalid