> AffiliateOS Help Center. Index of every article for AI tools: https://www.affiliateos.ai/help/llms.txt

# Users are blocked or rejected

Troubleshooting · For publishers · Updated 30 October 2026
Web version: https://www.affiliateos.ai/help/troubleshooting/users-blocked

Blocked means our traffic checks refused a tap: the user saw "This offer isn't available for your account" and never reached the store. Rejected means our checks put a user on your reject list: their conversions are recorded at $0 with no postback, and **Traffic Quality** says why.

## What you see

| What you see | What it means | What to do |
|---|---|---|
| The user saw "This offer isn't available for your account" | Our checks refused that tap. The offer is still live | Don't coach around it (first check) |
| The user saw "This offer isn't available in your state" | The offer doesn't take players from that US state | Send the player's state |
| Rows in **Conversions** read `rejected` | The user is on your reject list | Open **Traffic Quality** |
| A `reversed` row with a reason such as `Duplicate accounts detected` | Our checks found the user later and took back recent conversions | Deduct as usual |

## Checks, most likely first

### Our checks refused the tap

**How to confirm:** The user's screenshot shows "This offer isn't available for your account". The offer stays live for everyone else, and the advertiser never saw the tap, so nobody pays for it.

**Fix:** Don't tell users how to get around it, such as switching a VPN or making another account: both are things our checks look for. If you think real users are being refused, send us their IDs, the offer ID and the times they tapped.

### The user is on your reject list

**How to confirm:** In **Reporting**, then **Traffic Quality**, the user's **User (sub id)** is listed with the offer (or **Every offer**), the **Reason**, when they were **Rejected** and when it **Expires**. In **Conversions**, their rows read `rejected`, with a link to Traffic quality.

**Fix:** While the rejection lasts, the user's taps are refused, and any conversion pays $0 and sends no postback. On the Hosted Offerwall it applies to the `uid` you launched with: that user can't start another wall offer. A rejection expires 30 days after it was set. If we clear a user sooner, a rejected conversion can still be paid: it turns `completed` under the same `action_id` and sends its normal postback then.

**Traffic Quality** shows the reason for each user in plain words.

### Our checks took back recent conversions

**How to confirm:** In **Conversions** or **Flight Recorder**, rows read `reversed` with the reason (under the status in Conversions, as **Reversed because** in Flight Recorder): `Emulated devices`, `Duplicate accounts detected` or `IP mismatch / VPN or proxy detected`. Each came to your server as a `status=reversed` postback with the same `action_id` and a `reason`.

**Fix:** Deduct them as usual. When our checks find several accounts on one device, those users are rejected and their conversions from the 7 days before may be reversed. For an emulated device, duplicate accounts, or a VPN or proxy mismatch, it's the 30 days before.

> **Rejected conversions pay $0 and send nothing.** Don't credit a user from your own records for a step we rejected or reversed. If we clear a rejected user later and pay the step, its postback comes then, with the same `action_id`.

### The offer doesn't take that state

**How to confirm:** The user saw "This offer isn't available in your state". The tap never reached the advertiser.

**Fix:** On the Offer API, send a US player's state as `state=TX`, and offers that exclude it are left out of their list. More: [filter offers by country, platform and category](https://www.affiliateos.ai/help/offers/filter-by-country-platform-category).

### One source sends most of them

**How to confirm:** The rejected users on **Traffic Quality** came from the same placement, campaign or partner of yours. Tag your links with `subsource_id`, or `sub1` to `sub10`, to tell sources apart.

**Fix:** Pause that source until you know why. Keep one account per person, each with their own `sub_id`.

## Send us this

- The email you sign in with.
- The user's ID (`sub_id`, or the wall's `uid`) and the offer ID.
- When they tapped, with your time zone, and what they saw.
- The reason **Traffic Quality** shows, if they're listed.
- Why you think they're a real, single person.
