Error Codes
Most Happa plugin failures are intentionally simple: a short JSON error response for API calls, or an entry in webhook logs when your endpoint rejects a delivery.
REST API responses
| Status | Meaning | Typical fix |
|---|---|---|
400 | Bad request body or missing query parameter. | Validate required fields and date formats before calling the API. |
401 | Missing, invalid, or expired bearer token. | Load the correct installation token from secure storage. |
403 | Scope not granted or resource belongs to another user. | Request the right scope and ensure you are calling data for the installing organizer. |
404 | Unknown endpoint or missing resource. | Check the path and verify the event, poll, or profile exists. |
429 | Installation token exceeded the hourly or daily rate limit. | Honor Retry-After and reduce polling. |
Example API error body
{ "error": "Scope tickets.read not granted" }
Webhook failures
| Symptom | What it usually means |
|---|---|
401 in webhook logs | Your signature verification failed or the request body was parsed before verification. |
404 in webhook logs | The configured webhook path does not exist on your server. |
500 in webhook logs | Your handler threw an uncaught exception. |
Status code 0 | Happa could not connect to your endpoint or the request timed out. |
Troubleshooting checklist
- Verify the exact webhook URL in the developer portal, including the path.
- Check that your server reads the raw body for
/webhooks/happa. - Rotate credentials if you suspect an old secret is still deployed somewhere.
- Use webhook logs for inbound failures and API logs for outbound failures; both are available per plugin in the portal.
Fastest recovery path: once you fix an inbound issue, send another test.ping from the portal before you wait for a real event to occur.