Batch Campaign Created Duplicate Calls with Missing Metadata

When I submitted a batch campaign on January 22, 2026, Retell created TWO separate batches that ran simultaneously - one with correct data and one with completely blank metadata using a different phone number. This caused 165 customers to receive duplicate calls, with 8 customers answering both calls and hearing “Is this {{name}}?” (literal placeholder) on the second call.

Campaign Setup

What I Configured:

  • Batch campaign with 205 recipients

  • CSV uploaded with name and custom fields

  • Specific phone number selected (Phone Number A)

  • Agent configured with proper prompt

  • Scheduled for specific time

Expected Behavior:

  • 205 calls from Phone Number A with proper CSV data

Actual Behavior:

  • 170 calls from Phone Number A with correct data ✓

  • 165 calls from Phone Number B with blank data :cross_mark:

  • Total: 335 calls instead of 205

The Bug Pattern

Both batches started at the exact same time using the same agent but different configurations:

Attribute Good Batch Corrupted Batch
Phone Number Number A (configured) Number B (not configured)
CSV Fields Populated ALL BLANK
Recipients Same 205 numbers Same 205 numbers
Start Time Identical timestamp Identical timestamp
Agent Same agent ID Same agent ID

Example of Duplicate Call

Contact: Customer X

GOOD BATCH CALL:

  • From: Phone Number A ✓

  • Name field: “John” ✓

  • Custom field: Populated ✓

  • Duration: 35 seconds

  • Transcript: “Hi there, is this John?” ✓

CORRUPTED BATCH CALL (same customer, same minute):

  • From: Phone Number B :cross_mark:

  • Name field: BLANK :cross_mark:

  • Custom field: BLANK :cross_mark:

  • Duration: 3 seconds (hung up immediately)

  • Transcript: “Hi there, is this {{name}}?” :cross_mark: (literal placeholder text)

Customer Experience - Received Two Calls Simultaneously

Out of 157 duplicated calls:

  • 24 customers answered the first call, then rejected the second (confused/annoyed)

  • 8 customers answered BOTH calls at the same time (extremely confusing experience)

  • 86 customers both calls went to voicemail (wasted costs)

  • 9 customers first call went to voicemail, answered second call hearing “Is this {{name}}?”

Example of customer answering BOTH calls:

  • First call: “Hi there, is this Sarah?”

  • Second call (simultaneous): “Hi there, is this {{name}}?”

  • Customer gave confused responses, was clearly on two calls at once

  • Both calls lasted 30 seconds

Why This Appears to Be a Platform Bug

  1. No external triggers: No automation, no API scripts - only used Retell UI

  2. Single submission: Created only ONE batch campaign

  3. Identical timing: Both batches started at exact same timestamp

  4. Systematic data loss: ALL 165 corrupted calls lost CSV data

  5. Wrong phone number: Phone Number B is only used for test calls via web interface, never configured for campaigns

Critical Questions

  1. Is there a hidden second batch?

    • Dashboard shows only one batch (205 sent)

    • But 335 calls were actually made

    • Where are the other 165 calls coming from?

  2. Why did it use Phone Number B?

    • This number is NOT configured in the batch campaign

    • It’s only used for test calls via web interface

    • Why would a duplicate batch default to this number?

  3. What caused the duplication?

    • Race condition in batch creation?

    • Database replication issue?

    • Some internal retry mechanism?

  4. Why did the duplicate lose CSV data?

    • CSV was properly uploaded (good batch proves it)

    • Why would a duplicate not have access to the same data?

    • Literal “{{name}}” placeholder suggests variable substitution failure

  5. How can I prevent this?

    • I run daily batch campaigns

    • Cannot risk this happening again

    • Is there a workaround or setting I should change?

Business Impact

  • 165 customers received unprofessional duplicate calls

  • 8 customers experienced simultaneous calls (terrible UX)

  • Compliance/quality issues from missing customer data

  • Brand damage from “Is this {{name}}?” calls

  • Wasted costs on duplicate failed calls

  • Customer confusion and complaints

Technical Details

  • Both batches used same agent (same version)

  • Phone Number B has never been configured for batch campaigns

  • This is the first time seeing this issue at this scale

  • Previous batches worked correctly

Has anyone else experienced this? Any Retell team members who can investigate?

This is a critical issue that requires immediate investigation by the Retell AI team. The behavior you’re describing—duplicate batches running simultaneously with different phone numbers and blank metadata—is not documented as expected behavior in the batch calling system.

Based on the available documentation, when you create a batch call through the Retell AI workspace, you should navigate to the Batch Call tab, click “Create Batch Call,” enter call details including the From Number selection, upload your CSV with proper headers, and configure the time window(1). The system should create a single batch that processes all recipients once(1).

The documented batch call process does not mention any mechanism that would create duplicate batches or use alternative phone numbers(1). When you upload a CSV with custom data columns (like a first_name column referenced as {{first_name}}), these dynamic variables should be applied consistently to all calls in that batch(1).

What you should do immediately:

Contact Retell AI support through their official channels:

Key information to provide to support:

  1. The exact batch call ID from your dashboard
  2. Timestamps of both batches
  3. The two phone numbers involved (Number A and Number B)
  4. Screenshots showing the single batch in your dashboard versus the 335 actual calls made
  5. Call IDs from both the “good” and “corrupted” calls for the same customer
  6. Your CSV file structure and headers

This appears to be a platform-level bug that could indicate issues with batch creation logic, phone number assignment, or CSV data handling. The fact that literal {{name}} placeholders appeared in transcripts suggests the dynamic variable substitution failed completely for the duplicate batch(1).

The documentation does not provide troubleshooting steps for this specific scenario, which reinforces that this is abnormal behavior requiring direct platform investigation.