CallGrid

Call Bidding Error Codes Explained

Every CallGrid bid rejection code (1000, 4001 to 4013, 5001), what each one means, where rejections show in the Bids and Pings reports, and how to fix them.

Updated 11 min read

Browse the knowledge base
On this page

A rejected bid usually returns HTTP 200 with a four-digit code and a message. The codes below were confirmed against the bid service on 2026-10-15. Each rejection also lands in a reject column on Reports > Bids (Caller ID, Paused, Closed, Capped, Duplicate, Dup Ping, Tag Rules, Acceptance, Rate Limit), and the Bids detail log shows each bid's Outcome and Code. The first half of this page explains the codes. The second half explains the report columns and how to work a rejection down to its cause.

Bid rejection codes#

Code

Name

Meaning

Bids report column

1000

Success

The bid was accepted


4001

Disabled

Missing or unknown Grid ID, unknown organization, account billing standing off, or source not found


4002

Campaign is Paused

Campaign, campaign source or grid paused

Paused

4003

Invalid caller ID

Caller ID missing or failed validation

Caller ID

4004

Capacity check failed

Every destination capped, or no destination ping passed acceptance

Capped, Acceptance

4005

Duplicate. CallerId already paid out.

The caller was already paid out under the duplicate settings

Duplicate

4006

No phone numbers available for PSTN.

No dynamic number could be reserved for the bid


4007

Caller blocked

The caller is blocked, including a rejection by a Bid Received webhook


4008

Duplicate bid

A duplicate bid for this caller

Dup Ping

4009

Failed tag rules

Tag rules or filters rejected the bid

Tag Rules

4010

Bid not found

Confirmation request for a bid that does not exist


4011

Bid expired

Confirmation request after the bid expired


4012

Bid does not require confirmation

Confirmation sent for a bid that did not need one


4013

All destinations closed

Every destination is outside its business hours

Closed

5001

Rate limit exceeded

Campaign or source Max Requests exceeded (HTTP 429)

Rate Limit

4001 Disabled#

Check the Grid ID and organization in the posting URL, that the campaign exists and is enabled, and the account's billing status (a failed payment or suspension can disable service).

4002 Campaign is Paused#

The campaign, or the source inside the campaign, is paused. Pausing a source inside a campaign pauses only that campaign source; pausing the master source pauses it on every campaign that uses it. Resume from the Campaigns list or the campaign Sources tab.

4003 Invalid caller ID#

  • Send the caller ID in E.164 format, for example +15551234567.
  • Require Caller ID rejects bids without one. PSTN (dynamic number) bids always need a caller ID unless Require Confirmation Ping is on, in which case it can be supplied on the confirmation request instead. A PSTN confirmation with no CallerId is rejected.
  • A caller on Blocked Numbers is rejected before routing.

4004 Capacity check failed#

Every destination is capped, or no destination ping passed acceptance. Check in this order:

  1. Capped: source caps on the campaign Sources tab, destination and buyer caps, Max Concurrent Calls, Hard Concurrency Cap, Capacity Guard.
  2. Acceptance: every destination ping rejected or timed out. Check the Pings report (Accepted, Timeout, API Failed, Min Rev).
  3. Minimum Revenue: destinations below the campaign or routing group minimum are not considered. A ping that passes but returns no revenue value is not held to the floor.

Closed destinations return 4013 and failed tag rules return 4009, not 4004.

4005 Duplicate#

Duplicate settings worked as configured. Check Bid On Duplicates and Time Limit (Bid Settings), Max Number of Bidders, Scope, Time Period and Allow Repeat Pings (Duplicate Settings), and the buyer's Restrict Duplicates. The duplicate window is whatever the account configures; there are no fixed windows by vertical.

4006 No phone numbers available#

Bidding sources receive dynamic numbers per bid. A dynamic number is held for a fixed 5 minutes per number and caller, regardless of bid expiration, and the hold is extended by 5 minutes when the call arrives. Very high bid volume with long leases can exhaust the pool. Escalate to CallGrid to review number capacity, and check whether the publisher can use SIP or Require Confirmation Ping so numbers are reserved only for confirmed calls.

4007 Caller blocked#

The caller is on Blocked Numbers, or a Bid Received webhook with rejection settings rejected the bid. Check the webhook's rejection settings and its log on the bid.

4008 Duplicate bid#

A bid for the same caller was already made. Check the campaign's Duplicate Settings (Max Number of Bidders, Scope, Time Period, Allow Repeat Pings).

4009 Failed tag rules#

Buyer or destination Tag Routing Rules, routing plan filters or bid rules rejected the bid. A required tag that is empty (for example state, which comes from the caller's area code) fails the rule.

4010, 4011 and 4012 Confirmation errors#

These come back on the confirmation request: 4010 means the bid ID was not found, 4011 means the bid expired before the confirmation arrived (see Bid Expiration), and 4012 means the bid did not require confirmation.

4013 All destinations closed#

Every destination is outside its Business Hours or Capacity Schedule. Check the destinations' hours and timezone.

5001 Rate limit exceeded#

The campaign's Bid Rate Limits (Max Requests per Minute, Hour or Day) or a per-source override was exceeded. Rate-limited requests show under Rate Limit and Rate Limited % on the Bids report and in Bids & Pings History. Ask the publisher to slow down, or raise the limit for that source. Rate-limited requests return HTTP 429 with code 5001 in the body.

Where to See Rejections#

Surface

Path

Use it for

Bids report

Reports > Bids tab (default group by CampaignName)

Live rejection counts by category, grouped by source, campaign or buyer; a detail log per bid

Pings report

Reports > Pings tab (default group by DestinationName)

Why a destination did not accept: acceptance, tag rules, minimum revenue, timeouts, API failures

Bids & Pings History

/reports/history (not linked in the sidebar)

30-day default range with toggles By Source, Daily and Rejections

API

GET /api/reports/bidStats/rejections

Rejection-reason counts per source with footer totals, for exports

Detailed bid and ping logs are available for 7 days, the supported figure and the reach of the report date picker (data can persist slightly longer). The 30-day Bids & Pings History page is separate. Both reports export to CSV with basic columns only (caller IDs masked); use the API for full bid and ping records or anything older than 7 days. The Bids and Pings tab names replace the former Bid Max and Ping Max names.

Reject columns on the Bids report#

Rejected / Reject %#

All bids that were not made, as a count and percentage. If no single column dominates, work through them in the order in the troubleshooting flow.

Caller ID#

Likely cause: the bid had no usable caller ID while one was required.

  • Bid Settings Require Caller ID is on (campaign, source override or bid rule). PSTN (dynamic number) bids always need a caller ID unless Require Confirmation Ping is on, in which case it can arrive on the confirmation request.
  • The caller ID is malformed. Send E.164, for example +15551234567.

Paused#

Likely cause: the campaign, the campaign source or the master source was paused when the bid arrived. Pausing the master source pauses it on every campaign.

Fix: check status on the campaign Sources tab (paused icons distinguish campaign source from master source). Confirm whether the pause was intentional.

Closed#

Likely cause: no eligible destination was open: outside Business Hours, paused, or paused by Circuit Breaker.

Fix: check destination Business Hours and schedules, the Destinations list Status, and Circuit Breaker pauses (Member Alerts can email them). Check whether buyer users have paused their own destinations (Allow Buyer to Pause Destinations).

Capped#

Likely cause: every matching destination was at a cap: call caps, Max Concurrent Calls, Hard Concurrency Cap, Capacity Guard hold, buyer caps or concurrency, vendor caps or campaign source caps. Caps count independently and any one reached skips the destination.

Fix: raise the binding cap or add capacity. A destination on Capacity Guard is held out of new auctions for Capacity Guard Seconds after each win. Changing Cap Type resets that counter; editing only the cap amount keeps the running count, and destination cap resets follow the destination's timezone.

Duplicate#

Likely cause: the campaign's duplicate bidding rules fired:

  • Bid On Duplicates off, and this caller went payable within the Time Limit (hours or days).

Fix: confirm the business rule. If a repeat caller is worth buying again, shorten the time limit or allow bidding on duplicates.

Dup Ping#

Likely cause: the Duplicate Settings for bidders fired: more sources than Max Number of Bidders pinged with the same caller ID inside the window (Time Period Bid Expiration or Custom), or the same source pinged again with Allow Repeat Pings off. Scope Campaign counts per campaign; Global counts across campaigns that also chose Global.

Fix: raise Max Number of Bidders, allow repeat pings for sources that legitimately retry, or align Custom windows on Global campaigns.

Tag Rules#

Likely cause: the call's tags did not pass destination or buyer Tag Routing Rules (or plan and group filters) for any candidate.

Fix:

  • Check that the source sends the tags the rules need, with the exact casing.
  • Tag dropdowns before routing hide Buyer, Destination and post-routing tags, so a rule cannot depend on them.
  • For state and zip rules, use an alias so a missing visitor value falls back to the inbound value.
  • On bidding campaigns with Caller Identity Enrichment and Require Confirmation Ping on, destination tag filters are re-evaluated after enrichment at confirmation time, which can reject a call that passed at bid time.

Acceptance#

Likely cause: every pinged destination's Acceptance Parsing failed on the buyer's response.

Fix:

  • Open the destination > Ping tab > Run Ping with Test Variables and compare the real response to the rule (parsing type JSON, Split, Regex or XML; operator; key path; value).
  • A non-200 response rejects the ping unless Rejection Protection is on.
  • If the buyer never wants this traffic, filter it out with Tag Routing Rules so it is not pinged at all.
  • Drill into the Pings report grouped by DestinationName: Failed Accept, Min Rev, Timeout, API Failed.

Rate Limit / Rate Limited %#

Likely cause: the source exceeded Max Requests per Minute, Hour or Day in Bid Rate Limits (or its source override).

Fix: raise the limit or the source override, or ask the source to throttle. Expired Bid Action (Reject or Route) separately controls calls that arrive after Bid Expiration.

Detail Log#

Caveats when reading bids:

  • Bid $ reflects variable (dynamic) amounts. On static or fixed-revenue destinations the bid column can be empty or show the buyer's raw returned amount rather than the adjusted amount the call routed at.
  • On destinations with a Confirmation Request, bid details can display one bid and one ping as two bids with two ping prices. This is a display defect only; routing and billing are unaffected.
  • With Turbo Routing, cancelled pings are not written to reporting at all (they are not counted as API Failed), so ping counts on Turbo campaigns exclude them and CallGrid-side counts can differ from a vendor's own counts.
  • With Ping Guard, later bidders for the same caller reuse the first ping; reused pings count under Guarded in the Pings report and show a Ping Guard badge on the bid timeline.

Troubleshooting Flow#

  1. Reports > Bids, date range covering the problem, group by SourceName.
  2. Find the largest rejection column for that source.
  3. Apply the fix above. For Acceptance or Tag Rules, switch to Pings grouped by DestinationName to see which buyer rejects and why.
  4. If no column dominates, check in this order: Closed, Capped, Tag Rules, Acceptance, Rate Limit, Dup Ping, Duplicate, Caller ID, Paused.
  5. Open the detail log, filter the source, read Outcome and Code on a few bids.
  6. After the fix, watch the column fall on the live report, and confirm over days in Bids & Pings History with By Source and Daily.

Common Questions#

  • "Reject rate is 100%." Usually Tag Rules (over-strict destination rules or a missing tag) or Closed or Capped (no open destination). Check Business Hours first on new setups.
  • "My buyer says they want the call but it rejects." Acceptance: the buyer's response does not match the rule. Run Ping.
  • "Dup Ping is high but I only send once." Several of your sub-sources may share a caller ID within the window, or the platform retries. Check Allow Repeat Pings and Max Number of Bidders.
  • "Numbers don't match my platform's." Turbo ping storage, Ping Guard reuse, display duplication on confirmation destinations, and timezone of the date filter.
  • "No Route on calls that won bids." No Route means the caller was never sent to a buyer, including hang-ups during a greeting, IVR or while routing decided. No Routes do not count as No Connects.

Do it with AI#

Ask Claude or ChatGPT. Turn on the CallGrid connector (setup guides for Claude and ChatGPT), then ask: "Which rejection reason cost me the most bids yesterday?"

Make it automatic. Save that question as a scheduled task in Claude or ChatGPT, and the answer shows up every morning.

Stuck on a step? Ask Griddy.

The connector is read only. It looks things up and reads your data. You make the changes in CallGrid.

Was this article helpful?

Still stuck on a setup step?

Email support@callgrid.com with this article and where it stopped matching. A CallGrid specialist will help you get it working.