Skip to content

Troubleshooting

When Ledion can’t get a conversion to a network, it says why. You see the message in two places: on Ledion’s Activity page, next to the network, and in the step’s Ledion message output in your workflow. A send’s page in Activity also shows the code, like AUTH_EXPIRED.

Find the message below. Words in brackets, like [Network], stand for what Ledion fills in: the network’s name, a number, a property value. Messages from Ledion’s own pages (Connections, Conversions, Settings, Plan) are at the end.

How Ledion retries

Some problems go away on their own. When a network or HubSpot is busy or down, Ledion tries again: up to 6 more times over about 9 hours, and never past the network’s window. Problems that waiting won’t fix, like a revoked token or a deleted conversion action, fail at once, so you hear about them sooner.

A result that failed stays failed. The exception is a broken connection: after you reconnect, Retry failed sends in Activity resends what failed because of it in the last 7 days, where the network still accepts it (Check Activity and retry sends).

Connections

A connection needs reconnecting

[Network] connection needs reconnecting.

Code AUTH_EXPIRED · result failed · no retry

The network stopped accepting Ledion’s credentials: the token expired or was revoked, or the sign-in was. Ledion marks the connection Needs reconnect and emails your alert recipients, at most once a day per connection. Until you reconnect, every send to it fails with this message, without calling the network.

What to do: in Ledion, open Connections and click Reconnect on the card (Manage connections). Then click Retry failed sends in Activity.

Ledion can’t reach an account

Ledion can’t access [account] in [Network]. Check that access is still granted.

Code PERMISSION_DENIED · result failed · no retry

The credentials still work, but they no longer reach that ad account, dataset or pixel. On Google Ads, Ledion also marks the connection Needs reconnect and emails your alert recipients. On Meta, Microsoft Ads and Reddit the connection stays Active, its card shows Error, and the failures count toward the daily failure email.

What to do: give Ledion its access back, then click Retry failed sends in Activity.

  • Google Ads: add Ledion’s service-account email back as a user of the account, or of its manager account. Then click Reconnect on the connection and enter the same customer ID.
  • Meta and Reddit: the token must belong to this dataset or pixel. Generate a new one where the dataset or pixel lives, then add the network again in Connections with the same ID: Ledion updates the connection.
  • Microsoft Ads: the person who signed in must still have access to the account, and the account must allow offline conversions. Or add Microsoft Ads again and sign in as someone who has access.

Ledion lost access to HubSpot

Ledion lost access to this HubSpot account. Reinstall Ledion.

Code HUBSPOT_AUTH · result failed · no retry

HubSpot stopped accepting Ledion’s access, so Ledion couldn’t read the record. Usually Ledion was uninstalled in HubSpot. It can also mean a permission Ledion needs was taken away. Ledion sends no alert email for this one, since the install is gone.

What to do: install Ledion again (Install Ledion). Reinstall within 30 days to keep your setup: conversions, connections and settings.

The conversion in the network

The network can’t find it

[Network] can’t find ‘[name]’. It may be deleted, paused or renamed in [Network].

Code DESTINATION_NOT_FOUND · result failed · no retry

The name is where the conversion goes: the Google Ads conversion action, the Microsoft Ads goal, or for Meta and Reddit the event Ledion tried to send. For 7 days, the Conversions page shows this message on that network’s row of the conversion.

What to do: check it in the network.

  • Google Ads: the conversion action must exist, be enabled and be an “Import from clicks” action.
  • Microsoft Ads: the offline conversion goal must be active and keep the exact name Ledion has, since Microsoft matches goals by name.
  • Meta and Reddit: this means the dataset or pixel is gone, or its ID is wrong. Check the ID on the connection.

If it’s gone, create it again, then open the conversion in Ledion, pick it under Send to and save.

The conversion action isn’t ready

[Network] isn’t ready to accept this conversion yet. A new conversion action takes a few hours; an older one may need a setting changed in [Network].

Code DESTINATION_NOT_READY · result failed after 3 tries (on Google Ads it can also come as Google’s later verdict: Rejected)

New conversion actions need time. Google Ads needs 4 to 6 hours after you create one, and Microsoft Ads asks for 2 hours after you create a goal. Ledion tries 3 times in all: the retries wait 2 hours, then 6 hours. On Google Ads, an older action also gets this when a setting blocks it: enhanced conversions off or its terms not accepted, External attribution, or one conversion per click with an iOS click ID.

What to do: for a new action, usually nothing. Next time, create the action or goal a few hours before you turn on the workflow. For an older Google Ads action, check its settings (Connect Google Ads).

The network rejected the event

[Network] rejected the event: [reason].

Code INVALID_EVENT · result failed · no retry

The reason is the network’s own text. Before Ledion stores or shows it, it removes anything that looks like an email address, a phone number, a token or a long ID, and cuts it to 300 characters.

What to do: read the reason. If it doesn’t tell you what to change, email santi@ledion.io with the send ID.

Google rejected the event for missing or denied consent. Check Google consent in Ledion’s Settings.

Code CONSENT_MISSING · result sent, then Google’s verdict: Rejected

Google accepts an upload first and judges it later. Ledion checks back, and the send’s page in Activity shows Google’s verdict as Rejected. Activity doesn’t show the reason. This message comes in the rejection email instead: when Google rejects more than 20% of a conversion action’s checked events in a day (at least 5), your alert recipients get it. Google asks whether each person agreed to ad tracking, and it matters most for people in the EEA.

What to do: in Ledion’s Settings, under Google consent, pick the option that matches how you collect consent: “Use my Google Ads account settings”, “Everyone I send has agreed”, or “Read it from a contact property” (Change settings). With a property, Yes sends granted, No sends denied and empty sends nothing.

Already sent

Code DUPLICATE · result sent · no message

The network already had this event: it carries the same event ID as one Ledion sent before. Ledion counts it as sent.

What to do: nothing.

Matching and timing

Nothing to match on

[Network]: no [match keys] on the contact.

Code NO_MATCH_KEYS · result no_match · not sent

The contact had none of the details that network matches on, so Ledion didn’t call it. The message names what was missing, like “Reddit: no click ID, email or phone on the contact.”

Network Matches on
Google Ads Click ID (gclid, gbraid or wbraid). Email and phone too, when the destination has “Also match on email and phone” on
Meta Meta lead ID, click ID (fbc), browser ID (fbp), email, phone
Microsoft Ads Click ID (msclkid). Email and phone too, unless the goal has enhanced conversions off
Reddit Click ID (rdt_cid), email, phone

What to do: install the capture script and add its hidden fields to your forms, so new contacts carry click IDs. For Google Ads, turn on email and phone matching on the destination. For deals, Ledion uses one associated contact per network: the one with that network’s click ID first, then the primary contact, then the most recently updated. Check that the deal has its contacts associated: a deal without contacts gets this message too.

The click ID wasn’t recognized

[Network] didn’t recognize the click ID (wrong account or too old).

Code CLICK_NOT_FOUND · result failed · no retry (Google Ads: usually sent, then Google’s verdict: Rejected)

Google accepts the upload first and rejects the click later, so on Google Ads this usually shows as the Rejected verdict in Activity, and in the rejection email.

What to do: check that the connection is the ad account that ran the ad. Click IDs are case-sensitive, so anything on your site that changes the case of a URL breaks them. Google Ads and Microsoft Ads take clicks up to 90 days old.

The conversion is earlier than the click

[Network]: the conversion time is earlier than the ad click or the lead. Check what the step maps to Occurred at.

Code CONVERSION_BEFORE_CLICK · result expired when Ledion catches it first (Meta, Microsoft Ads), failed when the network refuses it · not sent (Google Ads: sent, then Google’s verdict: Rejected)

This comes from the step’s Occurred at (optional) field: it was mapped to a date before the ad click. For Meta’s CRM stage events, the limit is the lead: the contact’s create date.

What to do: leave Occurred at empty, so the conversion time is when the step runs, or map a date that comes after the click. Check the property’s time zone too.

Too old for the network

Too old for [Network] ([window] limit).

Code EVENT_TOO_OLD · result expired · not sent

Each network takes conversions up to a certain age. Ledion checks before it sends, so it doesn’t send what the network would refuse.

Network Window
Google Ads Clicks up to 90 days old. Matches on email or phone only: up to 63 days
Meta Events up to 7 days old
Microsoft Ads Conversions within 90 days of the click, and within the goal’s conversion window
Reddit Events up to 7 days old

What to do: leave the step’s Occurred at empty unless you need it, so the conversion time is when the step runs. For Google Ads and Microsoft Ads the limit counts from the ad click: a deal that closes more than 90 days after the click is too late for that click.

The record’s values

The value isn’t a valid amount

The value isn’t a valid amount (a number, 0 or more).

Code INVALID_VALUE · result failed for every network · not sent

The value has to be a number, 0 or more. Ledion rounds it to 2 decimals.

What to do: in the step, map a number property, like the deal’s Amount, or leave it empty to use the conversion’s default value. Check the record’s value. The message doesn’t repeat what the step sent, since a property mapped by mistake could be a name.

The currency isn’t a valid code

The currency is missing or isn’t a valid ISO code, like USD.

Code INVALID_CURRENCY · result failed · not sent

When there’s a value, Ledion needs a 3-letter ISO 4217 code, like USD or EUR. It takes the first one set: the step’s Currency field, the conversion’s default currency, the default currency in Ledion’s Settings, then your HubSpot account currency. This message means none was set, or the one it found isn’t a code.

What to do: fix the currency on the record or what the step maps, or set a default currency on the conversion or in Settings.

The record is gone

The HubSpot record no longer exists.

Code RECORD_NOT_FOUND · result failed · not sent

The record was deleted before Ledion read it, so there was nothing to send.

What to do: nothing, unless the record shouldn’t have been deleted. Then restore it in HubSpot, and the next time the step runs for it, it sends.

Your plan

Plan limit reached

Plan limit reached ([used] of [limit] sends this month). Upgrade on Ledion’s Plan page to keep sending.

Code PLAN_LIMIT · Ledion status skipped · nothing sent

Ledion lets you go 10% over your plan’s sends, then skips the step until the 1st of next month. Your alert recipients get an email at 80% and 100% of the plan. A send is one run of the Send conversion step for one record. Runs that don’t reach any network don’t count, and neither does Send test.

What to do: upgrade on Ledion’s Plan page (Plan and billing), or wait for the 1st.

The network isn’t in your plan

Your plan includes 1 network. Upgrade to send to [Network].

Code NETWORK_NOT_IN_PLAN · result not_configured · not sent

Your plan sends to one network, the one you connected first. The conversion also goes to others, so those aren’t sent. The Connections page shows the same message when you connect a second network on a one-network plan.

What to do: upgrade on Ledion’s Plan page, or remove the other networks from the conversion.

Setup

These skip the whole run before anything is sent. The step’s Ledion status is skipped, the message says why, and the workflow moves on.

The conversion is off or deleted

Conversion ‘[name]’ is turned off or deleted in Ledion.

Code DEFINITION_DISABLED · Ledion status skipped

What to do: turn the conversion back on in Ledion’s Conversions page, or pick another one in the step. If it was deleted, create it again and pick it in the step.

No network to send to

No connected networks for this conversion.

Code NO_DESTINATIONS · Ledion status skipped (or one network’s result not_configured, when its destination was removed while the send was running)

What to do: in Conversions, check that the conversion sends somewhere under Send to. In Connections, check that the network’s card says Active. Send test shows the same message for a conversion with nowhere to send.

Ledion isn’t installed

Ledion isn’t installed in this HubSpot account. Install it again to send conversions.

Code PORTAL_NOT_SET_UP · Ledion status skipped

Ledion was uninstalled from this HubSpot account, or never finished installing. This one doesn’t show in Activity, only in the step’s output, and on Ledion’s pages if one was left open after an uninstall.

What to do: install Ledion (Install Ledion). Within 30 days of an uninstall, your setup comes back.

Busy, down or stuck

A network was unavailable

[Network] was unavailable. Ledion retried [N] times.

Codes RATE_LIMITED and PLATFORM_UNAVAILABLE · result failed after retries

The network said it was busy (RATE_LIMITED) or didn’t answer (PLATFORM_UNAVAILABLE) on every try. When a network says how long to wait, Ledion waits at least that long. When reading the record from HubSpot failed this way, the message says HubSpot.

What to do: nothing on your side. If you see it on many sends, email santi@ledion.io.

HubSpot was busy

HubSpot was busy. Ledion retried [N] times.

Code HUBSPOT_RATE_LIMITED · result failed after retries

HubSpot limits how many requests an app makes to each account, and it kept answering that Ledion was over that limit.

What to do: nothing on your side. If you see it on many sends, email santi@ledion.io.

Timed out

Ledion couldn’t finish this send within 24 hours.

Code TIMEOUT · result failed

Ledion holds a record at the step for 24 hours at most. Then it completes the step with the results it has and marks the rest failed.

What to do: email santi@ledion.io with the send ID. This shouldn’t happen.

Internal error

Ledion hit an internal error. We’ve been notified.

Code INTERNAL · result failed after 2 tries

A bug on Ledion’s side. Ledion tries once more, and I get a list of these every day. Ledion’s pages show the same message when a save or a connect fails on Ledion’s side.

What to do: on a send, nothing: they’re in my daily report. On Ledion’s pages, try again in a minute. If it’s blocking you, email santi@ledion.io with the send ID.

Other messages in Activity

These aren’t errors.

Message What it means
[Network] sent The network took it
[Network] already sent “Once per record”: this record already sent this conversion there, so it isn’t sent twice. The send’s page names the earlier send: “Already sent to [Network] in send [send ID].”
Test mode isn’t available for Microsoft Ads. The goal is set up correctly. Send test only. Microsoft has no test mode for live accounts, so Ledion checked the goal and uploaded nothing
Not sent. Reddit counts events without a Test ID as real. Add a Test ID to the Reddit connection to test. Send test only. Copy the Test ID from Reddit’s Event Testing, then click Test settings on the Reddit card in Connections and paste it (Test settings)
The last send to [Network] failed. On a connection’s card, when the error needs the send to explain it. Open the send in Activity for the details

Messages on Ledion’s pages

These show on Connections, Conversions, Settings and Plan, when something you did didn’t go through.

Message What to do
Ledion couldn’t verify this request. Reload the page. Reload the page in HubSpot. If it keeps happening, email santi@ledion.io
That request wasn’t valid. Reload the page and try again. Reload, then try again
That connection doesn’t exist anymore. Reload the page. Someone removed it meanwhile. Reload, and connect it again if you still need it (Connections)
Ledion couldn’t find that. Reload the page. Reload the page in HubSpot. If it keeps happening, email santi@ledion.io
Alert emails must be valid addresses, 10 at most. Fix or remove the address the form marks, and keep it to 10 (Change settings)
Currency must be a 3-letter ISO code, like USD. Use a code like USD or EUR, or leave it empty
Country must be a 2-letter code, like US. Use a code like US or GB, or leave it empty
Use the property’s internal name, like consent_status. Enter the internal name, not the label. It’s in the property’s settings in HubSpot
Those settings couldn’t be saved. Check them and try again. Check each field, then save again
HubSpot didn’t answer. Try again in a minute. Try again in a minute
Only the person who installed Ledion can uninstall it here. Anyone allowed to uninstall apps in HubSpot can also remove it from Connected apps. Ask that person, or uninstall from HubSpot’s Connected apps (Disconnect and uninstall)
Confirm that Ledion may send this data to [Network], then try again. Check Sending to [Network] on the form, then connect
That token isn’t valid. Copy the whole token again, or generate a new one (Meta, Reddit)
That token can’t send to this pixel. Generate the token in the Reddit business that owns the pixel
Pixel not found. Check the pixel ID in Reddit’s Events Manager and paste it again
Meta can’t find that dataset. Check the dataset ID. Copy the ID from the top of the dataset’s settings in Events Manager
[Network] didn’t accept those details. Check them and try again. Check each field against the network’s page in this guide
[Network] didn’t answer. Try again in a minute. Try again in a minute
Enter the 10-digit customer ID, like 123-456-7890. Copy it from the top of Google Ads. Dashes are fine
This sign-in can’t access [Network]. Remove it and connect with the account you use for ads. Remove the connection, then connect again and sign in with the account that has the ad account
[Network] account [account] is already connected to another HubSpot account. If it’s yours, email santi@ledion.io. During the beta, a Google Ads account belongs to the first HubSpot account that connects it. Email me and I’ll sort it out
You already have a conversion with that name. Pick another name
Stripe didn’t answer. Try again in a minute. Try again in a minute
There’s no billing account yet. Pick a plan under Upgrade first. Pick a plan under Upgrade (Plan and billing)

The install and sign-in pages have their own messages: see Install Ledion and Connect Microsoft Ads.

Still stuck

Email santi@ledion.io with the send ID. It’s in Activity, and in the step’s Ledion send ID output.

Something missing or wrong? Email santi@ledion.io.