diff --git a/matrix_puppeteer_line/rpc/rpc.py b/matrix_puppeteer_line/rpc/rpc.py index 19c2665..7b5877c 100644 --- a/matrix_puppeteer_line/rpc/rpc.py +++ b/matrix_puppeteer_line/rpc/rpc.py @@ -147,7 +147,14 @@ class RPCClient: async def _read_loop(self) -> None: while self._reader is not None and not self._reader.at_eof(): - line = await self._reader.readline() + line = b'' + while True: + try: + line += await self._reader.readuntil() + break + except asyncio.exceptions.LimitOverrunError as e: + self.log.warning(f"Buffer overrun: {e}") + line += await self._reader.read(self._reader._limit) if not line: continue try: