always return lastError