-
Notifications
You must be signed in to change notification settings - Fork 791
Open
Labels
type: bugbug in the librarybug in the library
Description
Describe the bug
Escalating to another number is not working anymore.
Got the error:
amp_assist_api | 2025-07-22 11:35:24.144 - [ERROR]- backend_apibackend_api.agents.ultravox.session - session.py:336 - Error transferring call: HTTP 404 error: Unable to update record: The requested resource /2010-04-01/Accounts/AC02e7597cf9c9469d7f52c87dbf15753e/Calls/CAb9335eb22d8b19958ef20674ab8c9643.json was not foundCode snippet
from twilio.twiml.voice_response import Connect, VoiceResponse
self.twilio_client = Client(
username=settings.TWILIO_ACCOUNT_SID,
password=settings.TWILIO_AUTH_TOKEN,
http_client=AsyncTwilioHttpClient()
)async def _transfer_to_live_agent(self):
"""Transfer an active call to the destination number."""
try:
logger.debug("Starting the transfer to a live agent")
# Create TwiML for transfer
response = VoiceResponse()
response.say("Please hold while we transfer you to a live agent.")
dial = Dial()
dial.number("+3519344455521")
response.append(dial)
await self.send_text(
text=(
"Live agent was just called. Please inform the user about it."
),
defer_response=False
)
# Empirical value, used to give time to the Ultravox model to
# inform the agent about the next move.
await asyncio.sleep(10)
logger.debug("About to update the twilio call")
# Update the call with new TwiML
try:
await self.twilio_client.calls(self._twilio_call_sid).update_async(
twiml=str(response)
)
logger.debug("Current Call object updated")
finally:
# Ensure we close the HTTP client session
await self.twilio_client.http_client.close()
# Properly close the Ultravox WebSocket connection
await self.leave_call()
except Exception as e:
logger.error(f"Error transferring call: {e}")
# Ensure we still try to close the connection even if there's an error
try:
await self.leave_call()
except Exception as close_error:
logger.error("Error during disconnect "
f"after transfer failure: {close_error}")
finally:
# Ensure we close the HTTP client session even if there's an error
try:
await self.twilio_client.http_client.close()
except Exception as close_error:
logger.error(f"Error closing HTTP client session: {close_error}")Note that this is part of the code and includes the relevant portion
Actual behavior
Got the error:
amp_assist_api | 2025-07-22 11:35:24.144 - [ERROR]- backend_apibackend_api.agents.ultravox.session - session.py:336 - Error transferring call: HTTP 404 error: Unable to update record: The requested resource /2010-04-01/Accounts/AC02e7597cf9c9469d7f52c87dbf15753e/Calls/CAb9335eb22d8b19958ef20674ab8c9643.json was not foundExpected behavior
Call would get transferred as it did in the past
twilio-python version
at least at and above 9.4.6 wont work
Python version
3.11
Logs or error messages
Got the error:
amp_assist_api | 2025-07-22 11:35:24.144 - [ERROR]- backend_apibackend_api.agents.ultravox.session - session.py:336 - Error transferring call: HTTP 404 error: Unable to update record: The requested resource /2010-04-01/Accounts/AC02e7597cf9c9469d7f52c87dbf15753e/Calls/CAb9335eb22d8b19958ef20674ab8c9643.json was not foundAdditional context
No response
Metadata
Metadata
Assignees
Labels
type: bugbug in the librarybug in the library