replace the fast_variant in socket_observable with error_or