maybe misleading, as the error callback will never be called