1. Home
  2. Knowledge Base
  3. Thrive Apprentice
  4. Thrive Apprentice Settings
  5. How to Read Incoming Webhook Logs in Thrive Apprentice

How to Read Incoming Webhook Logs in Thrive Apprentice

In this article, you’ll learn how to read the Logs tab of an incoming webhook in Thrive Apprentice, what each result means, and what to do when a request didn’t work.

Note: This article assumes you’ve already created a webhook. If you haven’t, start with How to Use Incoming Webhooks in Thrive Apprentice.

Opening the Logs

  1. Go to Thrive Dashboard › Thrive Apprentice › Settings › Incoming Webhooks.
  2. Open the webhook you want to check.
  3. Click the Logs tab.

You’ll see the webhook’s recent requests. Requests are kept for 30 days. Use the status filter (Successful, Failed, Skipped, or Mapping pending) and the time range filter (last 24 hours, 7 days, or 30 days) to narrow the list. Click any row to see the full request, the response sent back to your tool, and the result.

Logs tab showing successful, failed, and skipped requests with Use to map fields and Replay

Tip: Secrets are partly hidden in the logs, so you can safely share a screenshot of a log entry with support.

What Each Result Means

Requests That Worked

  • Granted access to for [email] – the student now has access. If they didn’t have an account, one was created.
  • Revoked access to for [email] – access was removed. The student’s account and progress are kept.
  • User already had access to ([email]) – your tool sent the same sale again, or the student already had access. Nothing changed, and no duplicate account was created. No action needed.
  • User had no access to ; nothing to revoke ([email]) – a revoke request arrived for someone who didn’t have access. No action needed.

Requests That Were Skipped

  • Skipped – didn’t match condition – the request didn’t match the condition on the Field mapping tab. The result shows which field was checked, what it contained, and what the condition expected. This is normal when your tool sends several event types to the same URL (for example, refunds sent to a purchase webhook). If a request you expected to work was skipped, check the field path and value in your condition.

Requests That Were Logged Without Running

  • Mapping pending – request logged, no action was run – the webhook doesn’t have an email field mapped yet. Open the request and click Use to map fields, then save.
  • Webhook not finished yet – request logged, no action was run – the webhook’s setup was never completed. Finish the Setup and Field mapping tabs, then save.
  • Captured for field mapping while listening – a test request captured during Start Listening. Test requests never create accounts or grant access.

Requests That Failed

  • Secret header missing or Secret header did not match – your tool didn’t send the secret, or sent an old one. Copy the current secret from the Security tab into your tool. If you regenerated the secret, every tool using the old one is rejected until you update it.
  • Secret field verification failed – the secret in the request body didn’t match. Check the field name and secret value on the Security tab.
  • Signature verification failed – for HMAC webhooks, the signature didn’t match. Check the signature header, encoding, header format, and signing secret.
  • Replay window exceeded – a timestamped signature was too old (more than about 10 minutes). This can happen when your tool retries an old request, or when a server clock is wrong.
  • Email field missing from payload or Email field is not a valid address – the mapped email field was empty or invalid. Check the email mapping on the Field mapping tab.
  • No account exists for [email] – the webhook uses Grant access (existing users only) or Revoke access, and there’s no account with that email.
  • Configured product no longer exists – the product chosen on the Setup tab was deleted. Pick another product and save.
  • Empty or invalid request body or Malformed request body – Thrive Apprentice couldn’t read the request. Incoming webhooks accept JSON or form-encoded data. Check your tool’s webhook format settings.
  • Rate limit exceeded – more requests arrived than the webhook’s rate limit allows. Raise the limit on the Security tab if your tool legitimately sends many requests at once.

Note: Paused webhooks reject requests without logging them. If you don’t see any new requests, check that the webhook isn’t paused.

Fixing a Request and Running It Again

After you fix a setting, you don’t need to wait for your tool to send the request again. Find the request on the Logs tab and click Replay to re-run it through the webhook’s current settings. The new result is added to the log and marked as re-processed from an earlier request.

Frequently Asked Questions

A student says they didn’t get access. Where do I start?

Filter the log to the last 24 hours or 7 days and look for the student’s email. If there’s no entry at all, your tool never sent the request – check the webhook URL in your tool. If there’s an entry, the result tells you what happened.

That’s it! You now know how to read your webhook’s logs, what each result means, and how to fix and re-run a request.

Was this article helpful?

Related Articles

>