SUPPORT.TWILIO.COM END OF LIFE NOTICE: This site, support.twilio.com, is scheduled to go End of Life on February 27, 2024. All Twilio Support content has been migrated to help.twilio.com, where you can continue to find helpful Support articles, API docs, and Twilio blog content, and escalate your issues to our Support team. We encourage you to update your bookmarks and begin using the new site today for all your Twilio Support needs.

Still Being Charged for Call Recording Storage After Migrating to AWS S3

Overview

If you’ve recently configured your Twilio account to store call recordings in your own AWS S3 bucket, but you’re still seeing “Call Recording Storage” charges on your Twilio invoice, you’re not alone. This article explains why these charges may still appear, how Twilio’s recording storage works, and what steps you can take to avoid unnecessary costs.

 

What You Need To Know

Understanding Twilio Call Recording Storage Charges

Twilio charges for call recording storage based on the total number of minutes stored within Twilio’s own storage across your parent account and all sub-accounts. If you have migrated to external storage (such as AWS S3), you should only be charged for recordings that remain in Twilio’s storage. Key points include: 

  • Storage charges apply to all recordings still stored in Twilio, even if you have enabled external storage for new recordings.
  • Twilio does not charge for recordings that are only stored in your external S3 bucket.
  • No temporary storage fees are incurred for recordings that are immediately transferred to S3.

 

Continue Seeing Charges

If you continue to see storage charges after setting up S3 storage, it usually means that some recordings are still retained in Twilio’s storage. This can happen if:

  • Older recordings were not migrated or deleted.
  • Sub-accounts have recordings that remain in Twilio storage.
  • The migration to S3 only applies to new recordings, not existing ones.

 

How to Stop Twilio Storage Charges

To avoid further charges:

  1. Review All Accounts: Check your parent and all sub-accounts for any recordings still stored in Twilio.
  2. Delete or Migrate Old Recordings: Move any remaining recordings to your S3 bucket or delete them from Twilio storage.
  3. Verify Your S3 Configuration: Ensure your S3 storage setup is active and correctly configured for all new recordings.
  4. Check Your Invoice Details: Use the CSV export from your Twilio invoice to identify which sub-accounts are generating storage charges.

 

How to Check Remaining Recordings

To check for remaining recordings after transferring them to S3, you can use the Twilio Recordings REST API to list resources and inspect their status and mediaUrl attributes.

Step 1: Identify Storage Location with mediaUrl

When you enable external S3 storage, Twilio adds a mediaUrl property to the Recording Resource:

  • External S3: The mediaUrl will contain the full URL to your S3 bucket.
  • Twilio Hosted: The mediaUrl (or uri) will point to Twilio's cloud storage.

Note: If external storage is active, Twilio does not retain a copy of the media file in its own cloud.

Step 2: List Remaining Recordings via API

You can fetch a list of all recording records to see which still exist in Twilio’s metadata.

  • API Endpoint: GET https://api.twilio.com/2010-04-01/Accounts/{AccountSid}/Recordings.json
  • Filter by Status: Use the Status parameter to find files that are still active versus those already removed:
    • completed: The recording exists and is available for download (either from Twilio or S3).
    • deleted: The media file has been removed, but the metadata remains for 30 days.

Step 3: Verification Steps

To confirm if recordings are still "left" on Twilio's servers specifically:

  1. Check for "Completed" Status: Loop through the List of Recordings and identify those with a status of completed.
  2. Inspect the mediaUrl: If the mediaUrl does not point to your S3 bucket, the file is likely still hosted on Twilio's infrastructure.
  3. Manual Deletion: If you find recordings that were successfully transferred but still have a completed status on Twilio, you must issue an HTTP DELETE request to that specific Recording SID to remove the media from Twilio's cloud.

 

Frequently Asked Questions

Does Twilio keep a temporary copy of recordings before moving them to S3?

No. Once S3 external storage is enabled, Twilio does not retain or charge for temporary copies.

Do I need to change any retention policies or settings?

No additional settings are required. Just ensure all old recordings are deleted or moved from Twilio storage.

How can I see which sub-accounts are responsible for storage charges?

Download the CSV file from your invoice and filter by sub-account to see detailed usage.

 

Additional Information

If you have reviewed all your accounts and are still seeing unexpected charges, or if you need help with your S3 configuration, your Twilio account team is here to help.

Have more questions? Submit a request
Powered by Zendesk