Troubleshooting
Common issues, ordered roughly from ingestion to delivery to automation.
Webhook not received
The event never appears under Events.
- Wrong URL. Confirm you're posting to
https://<api-base>/v1/ingest/<slug>with the correct slug. - Endpoint inactive. An inactive endpoint rejects requests. Re-activate it by editing the endpoint.
- Non-202 response. A successful ingest returns
202 Accepted. Inspect the status and body yourcurlreceived —400means a bad slug,404means an unknown endpoint. - Provider didn't send. Check the provider's own delivery logs to confirm it actually sent the request.
Invalid endpoint slug
The ingest request returns 400 Bad Request with Invalid endpoint slug.
- Slugs may contain only letters, numbers, hyphens, and underscores, up to 64 characters.
- Make sure no extra path segments, spaces, or query strings are appended to the slug.
A well-formed but unknown slug returns 404 Not Found instead — double-check you copied the right endpoint's slug.
Destination not called
The event is stored, but no delivery was created.
- No destinations. The endpoint has no destinations configured. Add one under Destinations.
- Destination disabled. Only enabled destinations receive deliveries. Check
isEnabled. - Event predates the destination. Deliveries are created when the event is recorded. A destination added afterward only receives new events — replay the event to deliver it to the new destination.
Destination returned an error
The delivery is FAILED with a non-2xx responseStatus.
- Open the delivery to read the
responseStatusandresponseBodythe destination returned. - A delivery is only
SUCCESSon a2xxresponse.3xx,4xx, and5xxall count as failures. - Verify the destination's
url,method,headers, andcontentTypematch what the receiving service expects.
See HTTP response codes.
Event delivery failed (no response)
The delivery is FAILED with no responseStatus.
- Timeout. The destination didn't respond within
timeoutMs(default30000). Increase the timeout or speed up the receiver. - Connection error. The URL is unreachable, DNS failed, or TLS was rejected. Confirm the destination is publicly reachable over HTTPS.
Fix the destination, then replay the delivery.
Replay did not work
- No enabled destinations. Replay only targets enabled destinations. If all are disabled, nothing is sent.
- Same failure repeats. Replay uses the destination's current config. If the underlying problem (bad URL, downstream outage) isn't fixed, the replay fails the same way. Inspect the new delivery's response.
Terraform authentication failed
- Conflicting authentication. You supplied both an API token and Firebase credentials. Provide only one. Note that
WEBHOOKR_API_TOKENtakes precedence and suppresses the Firebase variables. - Missing credentials. Neither auth method is fully configured. Set
WEBHOOKR_API_TOKEN, or all three ofWEBHOOKR_FIREBASE_API_KEY,WEBHOOKR_SERVICE_ACCOUNT_EMAIL, andWEBHOOKR_SERVICE_ACCOUNT_KEY. - Missing
api_url. Setapi_urlin the provider block orWEBHOOKR_API_URL.
See Authentication and Terraform environment variables.
Token expired or revoked
API calls suddenly return authentication errors.
- A revoked or expired token stops working immediately. Create a new token in API Tokens, update your secret store, and retry.
- Check the token's
lastUsedAt,expiresAt, andrevokedAtin the dashboard to confirm its state.
Topology does not show expected data
- Wrong period. Topology is scoped to a time period. Widen it (e.g. last 30 days) if recent activity is sparse.
- No activity in range. Nodes with no events in the period are de-emphasized. Send or replay an event and refresh.
- Wrong project. Confirm the project switcher is set to the project you expect.