> ## Documentation Index
> Fetch the complete documentation index at: https://docs.canvas-protocol.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Troubleshooting

> Fixes for the most common issues owners and advertisers hit.

## Group owners

<AccordionGroup>
  <Accordion title="The bot isn't intercepting new joins">
    Confirm `@CanvasVerificationBot` is an **admin** with both **restrict members** and **send messages** permissions. Without restrict-members it cannot mute joiners; without send-messages it cannot post the verification notice. Re-add the permissions and try a fresh join.
  </Accordion>

  <Accordion title="New members join with no task">
    A task only runs when an **active campaign** matches your group. If no advertiser is currently funding a campaign for your group, joins pass through without a task (and without a payout). This is expected.
  </Accordion>

  <Accordion title="I passed verifications but haven't been paid">
    Earnings accrue immediately but settle on-chain in a recurring **payout batch**, so they appear as *pending* first. Confirm your payout wallet is set (`/wallet 0x…`). Settled payouts are visible on Basescan against your wallet.
  </Accordion>
</AccordionGroup>

## Advertisers

<AccordionGroup>
  <Accordion title="My deposit isn't showing up">
    Deposits are detected by polling Base and can take a short time to credit. If you paid from **Telegram's in-app browser**, open the deposit link in an **external browser** — some in-app browsers block the Base Pay flow. If it still doesn't credit, contact support with the payment ID.
  </Accordion>

  <Accordion title="My funded campaign isn't running">
    Funded campaigns wait in **pending approval** until the group owner accepts (with a 48-hour auto-accept). Until accepted, no verifications run. You can withdraw budget while a campaign is pending.
  </Accordion>

  <Accordion title="A user was admitted but I wasn't billed">
    That happens when the scorer was unavailable. On a Kimi outage the user is admitted after retries, but **no payout is released and you are not billed** — the protocol never charges for an unscored transcript.
  </Accordion>
</AccordionGroup>

## Members

<AccordionGroup>
  <Accordion title="I didn't get a DM from the bot">
    Telegram blocks bots from DMing users who haven't started them. Open [`@CanvasVerificationBot`](https://t.me/CanvasVerificationBot), tap **Start**, then re-request to join the group.
  </Accordion>

  <Accordion title="I was told to wait before trying again">
    Two failed attempts trigger a 24-hour cooldown on that group. Rate limits also cap attempts per user per group. Wait out the cooldown and try again.
  </Accordion>
</AccordionGroup>

## Dashboards

<AccordionGroup>
  <Accordion title="'Signature expired' or 'Signature required'">
    Dashboard access is proven with a wallet signature valid for 5 minutes. If you see an expiry error, reconnect your wallet to sign a fresh `Canvas auth: <timestamp>` message. See [API reference](/developers/api-reference).
  </Accordion>

  <Accordion title="'No account found for this wallet'">
    The wallet you signed with isn't linked to an advertiser or group. Advertisers: run `/link` in the bot. Group owners: register with `/register` and set a payout wallet with `/wallet 0x…`.
  </Accordion>
</AccordionGroup>
