Why do you return `error` here? This return will never be reached if `error` is non-zero.