diff --git a/zk/datastream/client/stream_client.go b/zk/datastream/client/stream_client.go index 6a537bb794e..e8e96ed9b29 100644 --- a/zk/datastream/client/stream_client.go +++ b/zk/datastream/client/stream_client.go @@ -128,7 +128,11 @@ func (c *StreamClient) GetL2BlockByNumber(blockNum uint64) (fullBLock *types.Ful if fullBLock, err = c.getL2BlockByNumber(blockNum); err == nil { break } - if !errors.Is(err, ErrSocket) { + + if errors.Is(err, types.ErrAlreadyStarted) { + // if the client is already started, we can stop the client and try again + c.Stop() + } else if !errors.Is(err, ErrSocket) { return nil, fmt.Errorf("getL2BlockByNumber: %w", err) }