Export troubleshooting
This page covers common troubleshooting scenarios for exports in both CSV and API workflows.
Use the tabs to select whether you’re exporting to the default Braze S3 bucket or to a cloud storage partner.
When you don’t have a storage partner marked as your default export destination, Braze uses its own Amazon S3 bucket to hold your export files. Files in this setup are temporary and expire after four hours.
CSV exports
When you export a CSV from the dashboard, Braze emails a download link to the logged-in user. That link points to a ZIP file hosted in Braze’s S3 bucket. Inside the ZIP are multiple smaller files that together make up your export.
You must be logged in to the Braze dashboard to use the link, and the file is available for only four hours. After that, the link no longer works and the data is deleted. If you run into repeated failures with very large exports (over 500,000 users), the export may fail. In that case, try splitting your export into smaller groups or fields, or consider setting up a storage partner.
Common errors
- If you see an
AccessDeniederror, the file may have already expired or you may have tried to open it before it was ready. Larger reports take longer to generate, so wait a few minutes and try again. - An
ExpiredTokenerror means the four-hour window has passed. Re-run the export to generate a fresh link. - The message
Looks like the file doesn't exist anymoreusually appears when the email is sent but the file hasn’t finished uploading to S3. Waiting a few minutes typically resolves it. - Apostrophes added at the start of certain fields (like
-,=,+, or@) are expected. For example,-1943becomes'-1943in the CSV. Braze does this to prevent spreadsheet programs from misinterpreting the data. This doesn’t apply to JSON exports, such as those returned by the/users/export/segmentendpoint.
API exports
When you export through the Export APIs without cloud storage, Braze writes the files to its S3 bucket. You won’t receive an email—instead, the API response includes a temporary download URL. The export comes as a ZIP containing multiple JSON files, each with one user per line.
Like CSV exports, links from the API expire after four hours. If you click the link too early, you may see errors because the file isn’t ready yet. You can provide a callback_endpoint in your request if you want Braze to notify you when the file is available.
Large API exports can also time out. If that happens, try making smaller requests or connect a storage partner to handle the volume.
Common errors
AccessDeniedorExpiredTokentypically mean the link expired or wasn’t ready yet. Run the export again or wait a bit longer.
Campaign and Canvas analytics
Number of users in CSV export doesn’t match Messages Sent or Unique Recipients
A campaign’s CSV export can show a different number of users than Messages Sent and Unique recipients for these reasons:
Re-eligibility is turned on
If users are (or were at one point) able to receive the campaign more than once, the campaign analytics numbers and the number of rows in the user data export don’t line up. Messages Sent counts every send, including when the same user is messaged more than once. The CSV Export User Data download lists unique users—one row per profile that received the campaign—not one row per send. For example, if Messages Sent is 12 and the CSV has 10 rows, those 12 sends went to 10 distinct users (some users were sent the campaign more than once).
Users were deleted or merged since the campaign or Canvas sent
The CSV export gives a snapshot of existing users who received a given campaign or Canvas. Because users can be deleted or merged, the CSV export count can be lower than the unique recipient count. For example, if 1,000 users receive a campaign, the campaign shows 1,000 unique recipients, and the CSV export that same day also shows 1,000 users. If a month later 50 of those 1,000 users are deleted, the CSV export contains 950 users while the incremented unique recipient count is still 1,000.
Dashboard segment export emails
Why aren’t I receiving segment export emails?
First, check your spam folder for an email from [email protected]. If the email is there, add that address to your safe sender list so future export messages aren’t filtered.
If the email isn’t in your spam folder, check whether someone else on your team can receive the export. If they can’t, consider the size of your export. Delivery time varies with export size, but if the email hasn’t arrived after an hour, contact Support.
Segment export API downloads
Can’t download an exported segment ZIP file from a Braze URL
If you get a 403 Forbidden error when using the /users/export/segment endpoint, the file may not be ready yet. Large exports can take a while to process. Wait up to an hour before downloading again.
If you use an automated script to retrieve the file, you may also receive a 403 Forbidden error when you request the URL too soon. If you export segment data regularly, consider connecting your own S3 bucket integration and passing files into your own extract, transform, and load (ETL) pipeline.
Exports take time to finish, so immediate access from a script often fails. You can:
- Poll the download URL with exponential backoff, or
- Use the
callback_endpointparameter and point it at a service that runs your script when the export is ready.