Skip to content
Draft
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
@@ -1,52 +1,68 @@
---
nav_title: Export troubleshooting
article_title: Export Troubleshooting
article_title: Export troubleshooting
page_order: 10
page_type: reference
description: "This reference article covers some common troubleshooting scenarios for API and CSV exports."

description: "This reference article covers common troubleshooting scenarios for exports in both CSV and API workflows."
---

# Export troubleshooting

> This page lists error messages you may encounter while exporting data through CSV or API from Braze.
> 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**.

{% sdktabs %}
{% sdktab Default export %}

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 need to be logged into the Braze dashboard to use the link, and the file will only be available for 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
### Common errors

### 'AccessDenied'
- If you see an `AccessDenied` error, 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 `ExpiredToken` error 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 anymore”* usually 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. Braze does this to prevent spreadsheet programs from misinterpreting the data.

#### When using your own S3 bucket
## 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.

If you're using **your own S3 bucket**, this could happen because:
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.

- The expected object is no longer in the S3 bucket; check with your engineers.
- The configured S3 credentials within the Braze dashboard don't have the correct permissions; confirm the proper credentials with your team.
Large API exports can also time out. If that happens, try making smaller requests or connect a storage partner to handle the volume.

#### When using a Braze S3 bucket
### Common errors
- `AccessDenied` or `ExpiredToken` typically mean the link expired or wasn’t ready yet. Run the export again or wait a bit longer.

If you're using a **Braze S3 bucket**, this could happen because:
{% endsdktab %}

- The object is no longer there. This could occur if you clicked on a link for an export that expired, as files are automatically deleted from S3 when the download link expires. Unless otherwise noted, files are removed after four hours. If this is the case, re-run your export.
- You selected the download link right away, before the S3 was ready to serve the object. Wait a few minutes and try again. Larger reports will generally take longer.
- The export is too big, so our server ran out of memory trying to create this zip file. We'll automatically email the user attempting this export if this occurs. If you consistently run into this issue, we recommend that you use your own S3 buckets in the future.
{% sdktab Cloud storage connected %}

### 'ExpiredToken'
When you connect a storage partner (such as Amazon S3, Google Cloud Storage, or Azure Blob) and mark it as your default export destination from the **Technology Partners** page in the dashboard, Braze writes your exports directly to your bucket. This setup is typically more reliable for larger exports.

This happens if the email was sent long enough ago that the S3 file has expired. Unless otherwise noted, files are removed after four hours. Re-run the export and download it before the file expires.
## CSV exports
With CSV exports, Braze emails you a download link. That link expires after four hours, just like with the default setup. The difference is that a duplicate copy of the export is also written to your connected bucket, where expiration and retention follow your own policies.

This could also be caused by Braze no longer having access to the S3 bucket you are downloading the data to. Make sure you've updated your S3 credentials using these steps.
In cloud storage, CSV exports aren’t bundled into a single ZIP. Instead, you’ll see multiple smaller files—typically around 5,000 users each, though sometimes fewer. That doesn’t necessarily indicate missing data. If the emailed link fails but the copy in your storage succeeds, you can always retrieve your data directly from your bucket.

### "Looks like the file doesn't exist anymore, please check to make sure nothing is deleting objects from your bucket"
### Common errors

There may be a slight lag between when Braze's email with the export gets sent, and when S3 is actually ready to serve the object. If you see this error, wait a few minutes before trying again.
- `AccessDenied` means Braze couldn’t write to your bucket. Double-check that your credentials and permissions are still valid.
- `ExpiredToken` appears if Braze has lost access to your bucket. Update your credentials in the Braze dashboard.
- If some files look smaller than expected, that’s normal behavior. The export process intentionally splits files for stability.

### Apostrophes added to fields
## API exports
When you export data through the APIs with a storage partner connected, files are written directly to your bucket. No email is sent, and expiration is determined by your storage settings. Each file contains JSON objects, one per line. Large exports create multiple files instead of a single ZIP, which makes this method more reliable for heavy exports.

Braze will automatically prepend an apostrophe to a field in the CSV export if the field begins with any of the following characters:
### Common errors

- -
- =
- +
- @
- `AccessDenied` happens when Braze can’t write to your bucket or the objects were deleted afterward. Check permissions and confirm nothing external is clearing files.
- `ExpiredToken` means Braze’s access credentials to your bucket are outdated. Refresh them in the dashboard.
- If files are missing or smaller than expected, first confirm that nothing outside Braze is deleting objects. Smaller file sizes themselves are expected.

For example, the field "-1943" will export as "'-1943". This doesn't apply to JSON exports, such as those returned by the [`/users/export/segment` endpoint]({{site.baseurl}}/api/endpoints/export/user_data/post_users_segment/).
{% endsdktab %}
{% endsdktabs %}