Product
Publishers
Advertisers
Networks
Help
Pause animations
Browse help topics
Troubleshooting PublisherNetwork

Postback not firing or never arrives

Updated

View as Markdown

Most often there’s no postback secret. We never send a publisher postback unsigned, so the conversion counts in your report and nothing reaches your server. Open Flight Recorder, find the conversion, and its delivery status names the fix.

On this page

What you see

What you seeWhat it meansWhat to do
Postbacks says “No postback secret, so none of your postbacks are being sent”You have no secret, so nothing is sentCreate one (first check below)
Publishers: Delivery reads failed, with an HTTP statusYour server answered with an errorFix your endpoint, then ask us to resend
Publishers: Delivery reads failed, with no HTTP statusWe couldn’t reach your serverCheck the URL, DNS and certificate
Delivery reads skipped_no_urlNo postback row matched this conversionAdd a conversion row
Delivery reads sentYour server answered with a 2xxSearch your own logs for the action_id
No row for the user or the offerNo conversion was reported to usSee An install wasn’t tracked

To get there: publishers open Reporting, then Flight Recorder, and filter by Sub ID (your user’s ID) or Action ID. For a Hosted Offerwall user, find the conversion in Conversions first, where the Sub ID column shows your uid, and paste its Action ID here. Choose a row to see Your postback delivery. Networks open Reporting, then Flight Recorder, and choose a row to see Network Delivery Response: Status, HTTP, Error. On a network delivery that failed, HTTP stays empty, so read Error for the reason.

Checks, most likely first

  1. No postback secret (publishers)

    How to confirm: Postbacks shows the warning above your rows. In Flight Recorder, the conversion’s Error reads “No active partner postback secret configured; postback not sent”.

    Fix: Choose Create postback secret and copy it at once: it starts with ps_ and is shown once. Put it in your server’s verification, then use Send test postback on a saved row. Conversions from before the secret existed aren’t sent on their own; send us their action IDs and we’ll tell you which we can send again.

  2. No row matches the conversion

    How to confirm: Delivery reads skipped_no_url.

    Fix: Open Postbacks and look at both tabs, Conversions and Events. Event rows are only used for later steps, so if your only rows are event rows, installs and first steps go nowhere. Add a conversion row with Postback Level set to global. Inactive rows are skipped too. Once you save any row, the account-level fallback URL stops being used. How rows are picked: global or offer-specific postbacks.

  3. Your server answered with an error

    How to confirm: Delivery reads failed with an HTTP status, and Error gives the reason. Copy request copies the masked URL we called, with the parameters in it, so you can replay it.

    Fix: A 401 or 403 usually means your signature check failed: verify the URL exactly as you received it, with your current secret. Rotating a secret stops the old one at once, so a server still holding the old one rejects everything. A 404 means the path changed. Publisher postbacks that got a 5xx or 429 were retried a few times within seconds, then stopped; other 4xx answers aren’t retried. Network postbacks are sent once. Fix the endpoint and answer 200. Publishers: send us the action IDs: our team can send failed credits from the Offer API and links again, under the same action_id, so your dedupe holds. How to verify: Verify a signed postback with HMAC-SHA256.

  4. We couldn’t reach your server

    How to confirm: Delivery reads failed with no HTTP status, and Error names a timeout or a refused connection.

    Fix: The URL must start with http:// or https:// and be reachable from the internet. Check its DNS, your firewall and your certificate, then Send test postback. A passing test proves your URL answers; it doesn’t prove live conversions route there.

  5. We sent it, and your server didn’t credit it

    How to confirm: Delivery reads sent and HTTP status (networks: HTTP) shows a 2xx.

    Fix: Search your logs for the action_id. The usual causes: your code dedupes on action_id alone, so it drops a reversal of a step you already credited; it looks the user up by something other than sub_id (on the Hosted Offerwall, sub_id is the uid you launched with); or it answers 200 before the crediting fails.

  6. Networks: your server stopped trusting the signature

    How to confirm: Your server rejects our postbacks with a 401, and someone recently generated or revoked the Webhook Secret under Workspace settings.

    Fix: Generating a secret replaces the old one at once. Revoking it means postbacks arrive with no verifier. Put the current secret on your server, or stop requiring one, then use Test Postback.

Send us this

  • The email you sign in with, and your role: publisher or network.
  • The action_id from Flight Recorder, or the user’s Sub ID and the offer ID.
  • When the conversion happened, with your time zone.
  • What Your postback delivery (networks: Network Delivery Response) shows: the status, the HTTP status and Error.
  • The masked URL from Copy request (networks: Masked URL). Never send your secret.
Flight Recorder. The report in your dashboard that traces a conversion from the tap to your postback delivery.What is the Flight Recorder?
Reversal. A conversion taken back after it was reported, by the advertiser or after our traffic checks. We take back its payout and send the publisher a reversal postback.What is a reversal?

Support

Still stuck? Write to us.

One address for every question: hello@affiliateos.ai. Put the details from this list in your first message so we can find the click or conversion without asking you for them again.

Put these in your message

  1. 01The email you sign in with
  2. 02Your role: publisher, advertiser or network
  3. 03The offer ID
  4. 04The click ID or action_id
  5. 05The time it happened, with your time zone
  6. 06What you expected to happen

Looking for a reward in an app? Ask that app's support. It credits your reward, so only it can see your balance.

Search help