return error instead of throw