use ON_ERROR_LOG_LAST_ERROR_AND_DO