Skip to content

Commit 84ed246

Browse files
authored
Merge pull request #2924 from pipecat-ai/aleix/daily-transport-remove-join-timeout
DailyTransport: don't timeout prematurely on join
2 parents 412ff2a + d82d855 commit 84ed246

File tree

2 files changed

+25
-32
lines changed

2 files changed

+25
-32
lines changed

CHANGELOG.md

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,9 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
2020

2121
### Fixed
2222

23+
- Fixed an issue where `DailyTransport` would timeout prematurely on join and on
24+
leave.
25+
2326
- Fixed an issue in the runner where starting a DailyTransport room via
2427
`/start` didn't support using the `DAILY_SAMPLE_ROOM_URL` env var.
2528

src/pipecat/transports/daily/transport.py

Lines changed: 22 additions & 32 deletions
Original file line numberDiff line numberDiff line change
@@ -744,32 +744,27 @@ async def join(self):
744744

745745
self._client.set_user_name(self._bot_name)
746746

747-
try:
748-
(data, error) = await self._join()
747+
(data, error) = await self._join()
749748

750-
if not error:
751-
self._joined = True
752-
self._joining = False
753-
# Increment leave counter if we successfully joined.
754-
self._leave_counter += 1
749+
if not error:
750+
self._joined = True
751+
self._joining = False
752+
# Increment leave counter if we successfully joined.
753+
self._leave_counter += 1
755754

756-
logger.info(f"Joined {self._room_url}")
755+
logger.info(f"Joined {self._room_url}")
757756

758-
if self._params.transcription_enabled:
759-
await self.start_transcription(self._params.transcription_settings)
757+
if self._params.transcription_enabled:
758+
await self.start_transcription(self._params.transcription_settings)
760759

761-
await self._callbacks.on_joined(data)
760+
await self._callbacks.on_joined(data)
762761

763-
self._joined_event.set()
764-
else:
765-
error_msg = f"Error joining {self._room_url}: {error}"
766-
logger.error(error_msg)
767-
await self._callbacks.on_error(error_msg)
768-
except asyncio.TimeoutError:
769-
error_msg = f"Time out joining {self._room_url}"
762+
self._joined_event.set()
763+
else:
764+
error_msg = f"Error joining {self._room_url}: {error}"
770765
logger.error(error_msg)
771-
self._joining = False
772766
await self._callbacks.on_error(error_msg)
767+
self._joining = False
773768

774769
async def _join(self):
775770
"""Execute the actual room join operation."""
@@ -828,7 +823,7 @@ async def _join(self):
828823
},
829824
)
830825

831-
return await asyncio.wait_for(future, timeout=10)
826+
return await future
832827

833828
async def leave(self):
834829
"""Leave the Daily room and cleanup resources."""
@@ -854,17 +849,12 @@ async def leave(self):
854849
for track_name, _ in self._custom_audio_tracks.items():
855850
await self.remove_custom_audio_track(track_name)
856851

857-
try:
858-
error = await self._leave()
859-
if not error:
860-
logger.info(f"Left {self._room_url}")
861-
await self._callbacks.on_left()
862-
else:
863-
error_msg = f"Error leaving {self._room_url}: {error}"
864-
logger.error(error_msg)
865-
await self._callbacks.on_error(error_msg)
866-
except asyncio.TimeoutError:
867-
error_msg = f"Time out leaving {self._room_url}"
852+
error = await self._leave()
853+
if not error:
854+
logger.info(f"Left {self._room_url}")
855+
await self._callbacks.on_left()
856+
else:
857+
error_msg = f"Error leaving {self._room_url}: {error}"
868858
logger.error(error_msg)
869859
await self._callbacks.on_error(error_msg)
870860

@@ -875,7 +865,7 @@ async def _leave(self):
875865

876866
future = self._get_event_loop().create_future()
877867
self._client.leave(completion=completion_callback(future))
878-
return await asyncio.wait_for(future, timeout=10)
868+
return await future
879869

880870
def _cleanup(self):
881871
"""Cleanup the Daily client instance."""

0 commit comments

Comments
 (0)