Skip to content

[BUG] Trying to pass the call to another number which worked in the past and now it does not... #877

@tropxy

Description

@tropxy

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 found

Code 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 found

Expected 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 found

Additional context

No response

Metadata

Metadata

Assignees

No one assigned

    Labels

    type: bugbug in the library

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions