# Troubleshooting

Common issues when integrating with Fuul and how to resolve them.

{% hint style="warning" %}
Fuul uses a **metadata versioning** system. Any changes to your configuration (conversions, triggers, payout terms) must be **published** from the dashboard for them to go live. If you don't publish, the changes remain in draft and won't process events.
{% endhint %}

## Quick reference

| Symptom                         | Likely cause                                                                      |
| ------------------------------- | --------------------------------------------------------------------------------- |
| Events not appearing            | Configuration not published, wrong event signature, API didn't return `201`       |
| Conversion exists but no payout | Fraud detection flag, user not in audience, payout only set for affiliates        |
| Payout amounts are wrong        | Incorrect payout term configuration, currency mismatch                            |
| Attribution not working         | `sendPageview` or `identifyUser` not called, user didn't arrive via referral link |
| Scheduled events missing        | Token Holder / Subgraph events only log at their scheduled time (0 UTC for daily) |

## Finding conversion events

If you cannot locate a conversion event, follow these steps:

**1. Check Activity > Conversions**

Start by looking in the **Activity > Conversions** section of the dashboard.

<figure><img src="/files/u6ewhRIlcgyQHDU1XdHD" alt=""><figcaption></figcaption></figure>

**2. Search Activity > Events**

If the conversion is not there, go to **Activity > Events** and filter by:

* Date range
* Address or conversion name

<figure><img src="/files/kEooYAPXnxpnsOdc8EvD" alt=""><figcaption></figcaption></figure>

{% hint style="info" %}
Token Holders and Subgraph events are logged at the scheduled time — at 0 UTC if they run once a day, or at the specific times matching their configured frequency.
{% endhint %}

**3. Event found — check the Trigger Execution**

Open the event and look at the **Trigger Execution** section in the drawer:

| Scenario                                   | Action                                                                        |
| ------------------------------------------ | ----------------------------------------------------------------------------- |
| There's an error                           | Review the error message and adjust the trigger configuration                 |
| Trigger execution exists but no conversion | Check the conversion's **rule configuration** to ensure it's set up correctly |

<figure><img src="/files/NS0gj0H71ALnTXmfbMXs" alt=""><figcaption></figcaption></figure>

**4. Event found but no trigger execution**

| Event type       | What to check                                                             |
| ---------------- | ------------------------------------------------------------------------- |
| Off-chain events | Make sure the trigger's **signature** matches the event name sent via API |
| All events       | Check if there are **Condition Filters** set on the trigger               |

**5. Event not in Activity > Events**

This means Fuul did not receive the event:

| Event type       | What to check                                                           |
| ---------------- | ----------------------------------------------------------------------- |
| Off-chain events | Verify the API request returned a `201` (created) status                |
| On-chain events  | Verify the trigger configuration — contract address and event signature |

## Finding payouts

If you cannot locate a payout, follow these steps:

**1. Check Activity > Conversions**

Look for the conversion and review its **Payment Status**.

<figure><img src="/files/oCAN5ZK0dlKq3bocIO57" alt=""><figcaption></figcaption></figure>

**2. Conversion exists but no payout**

Open the conversion drawer and check the status:

| Possible cause    | Description                                                                                                            |
| ----------------- | ---------------------------------------------------------------------------------------------------------------------- |
| Fraud detection   | The conversion may be flagged as fraud. Fraud only blocks the **referrer** payout — the end user still receives theirs |
| No audience match | The user may not belong to any audience required by the payout rules                                                   |

**3. Check the payout configuration**

If none of the above apply:

* Verify payouts are set correctly — e.g., if payouts are only for affiliates, confirm the conversion involves an affiliate
* Confirm the conversion is configured to generate a payout

<figure><img src="/files/G6n6m5SkWo43ohEoT2Yy" alt=""><figcaption></figcaption></figure>

**4. Conversion not in Activity > Conversions?**

Follow the steps in **Finding conversion events** above to trace the event.

## Common SDK issues

| Issue                        | Solution                                                                                                                                  |
| ---------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------- |
| `sendPageview` not tracking  | Ensure `Fuul.init()` is called before `sendPageview`. The SDK must be initialized with a valid API key                                    |
| `identifyUser` failing       | Verify the `user_identifier_type` matches the identifier format (`evm_address`, `solana_address`, `sui_address`, `xrpl_address`, `email`) |
| Affiliate code already taken | Use `Fuul.isAffiliateCodeFree()` to check availability before creating                                                                    |
| Rewards data not showing     | Rewards are updated hourly — recent conversions and payouts will appear within a maximum of one hour                                      |

{% hint style="info" %}
If you've reviewed these steps and still cannot resolve the issue, contact us for assistance.
{% endhint %}


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.fuul.xyz/developer-guide/troubleshooting.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
