Requests
A request represent an HTTP request that Hookdeck receives for a source.
When Hookdeck receives a request for a source, it evaluates for each associated connection if an event should be created. In the case where a connection is not eligible for an event, an "Ignored Event" is recorded. Requests no with events created are considered as a "Discarded Request" and may be billed for depending on your plan.
Rejected requests
A request is marked as rejected if a condition for creating events is not met – for example, if the source is disabled.
Rejection causes
Cause | Explanation |
---|---|
SOURCE_DISABLED | The associated source with the request URL is disabled |
VERIFICATION_FAILED | A verification integration configured for the request source identified invalid credentials or signature |
NO_WEBHOOK | There are no connections associated with the request source |
UNSUPPORTED_HTTP_METHOD | The request HTTP method is not supported. |
UNSUPPORTED_CONTENT_TYPE | The request content-type is not supported |
UNPARSABLE_JSON | The request content-type is JSON but the body is unparsable |
PAYLOAD_TOO_LARGE | The request payload was larger then what's allowed for your current quota |
UNKNOWN | An unknown error occur, the team has been notified and is investigating |
Ignored events
If an event is not created for a given connection, for example, because it doesn't pass a filter rule, an ignored event is recorded instead.
Ignored event causes
Cause | Explanation |
---|---|
DISABLED | The associated connection is disabled |
FILTERED | The associated connection's filtering rule did not pass |
TRANSFORMATION_FAILED | The associated connection's transformation rule failed to execute and resulted in a FATAL error |
CLI_DISCONNECTED | The associated connection has a CLI destination but no CLI client was connected when the request was received |
Retrying a request
Rejected requests can be retried. Hookdeck re-runs the processing logic for the request according to the new result and creates the associated events.
No events will be created for connections that did not exist at the time of original receipt. If new connections have since been added to the source, they will be ignored upon retrying the request.
Additionally, specific ignored events can be retried individually.
Requests eligible for retries
Only rejected requests are eligible for retry. Additionally, you cannot retry requests that have been rejected for the following reasons because they will be rejected again:
UNSUPPORTED_HTTP_METHOD
UNSUPPORTED_CONTENT_TYPE
UNPARSABLE_JSON
PAYLOAD_TOO_LARGE
UNKNOWN
Request bulk retries
Rejected requests can be bulk retried from the requests page. The bulk retry dropdown will automatically exclude requests that are not eligible for retry. Bulk retries are done asynchronously and may take some time to complete, a progress bar will be displayed once the retry is submitted.
The bulk retry speed is throttled based on the your project throughput. Increasing the quota will also increase the speed of the bulk retry.
View requests
Hookdeck allows you to browse a historical record of all requests within your retention period, or to filter requests by property. This log is useful for debugging and troubleshooting requests, as well as the events they generate.
Browse all requests
The Requests link in the dashboard's sidebar takes you to the Requests page, where you can view requests in descending order.
The request list displays up to 100 requests at a time. Travel back and forth using the Previous
and Next
buttons at the bottom of the list.
{
"pagination": {
"order_by": "created_at",
"dir": "desc",
"limit": 1,
"next": "req_sE7L2cs1Ftn5nUlb8feF"
},
"count": 1,
"models": [
{
"id": "req_sE7L2cs1Ftn5nUlb8feF",
"team_id": "tm_AkLVUIfTy4nn",
"verified": false,
"rejection_cause": null,
"original_event_data_id": "edt_sUZBRp413JM6OSNJk6qc",
"ingest_priority": "NORMAL",
"ingested_at": "2022-07-29T13:54:26.514Z",
"source_id": "src_iEfHpkswbzGW",
"updated_at": "2022-07-29T13:55:20.360Z",
"created_at": "2022-07-29T13:55:20.330Z",
"events_count": 2,
"cli_events_count": 0,
"ignored_count": 4
}
]
}
Browse filtered requests
Beneath the Requests link, you can find any custom request views, including Hookdeck's default views: Accepted and Rejected.
Filter requests
If your desired filters are not already saved as a filtered view, you can still use the Requests page to find the requests you're looking for.
- Open the Requests page to see a list of all requests, in descending order.
- Select any properties you'd like to filter on.
{
"pagination": {
"order_by": "created_at",
"dir": "desc",
"limit": 1,
"next": "req_sE7L2cs1Ftn5nUlb8feF"
},
"count": 1,
"models": [
{
"id": "req_sE7L2cs1Ftn5nUlb8feF",
"team_id": "tm_AkLVUIfTy4nn",
"verified": false,
"rejection_cause": null,
"original_event_data_id": "edt_sUZBRp413JM6OSNJk6qc",
"ingest_priority": "NORMAL",
"ingested_at": "2022-07-29T13:54:26.514Z",
"source_id": "src_iEfHpkswbzGW",
"updated_at": "2022-07-29T13:55:20.360Z",
"created_at": "2022-07-29T13:55:20.330Z",
"events_count": 2,
"cli_events_count": 0,
"ignored_count": 4
}
]
}
To filter the list of requests, use only supported operators.
For example, append ?created_at[gte]=2021-10-12&created_at[lte]=2021-10-13
to retrieve requests for that specific 24-hour period.
Requests past your organization archival window are not returned
Filterable properties
Property | Description |
---|---|
Status | The accepted or rejected status of the request |
Sources | Any source within Hookdeck |
Date | A specific date or interval |
Rejection Cause | The cause for which the request was rejected |
Request | A partial JSON match of the request headers, body, or query; or a partial string match of the request path. Note that this is not the same syntax used in Filters |
Ignored Events | The count of events that were ignored for the request |
Request | The count of events that were created for the request |
The rejection cause and status filters can conflict; in the case where the status is
Accepted
and a Rejection Cause is set, the status takes precedence.
Inspect a request
Inspecting a request reveals the associated request data, which can be used to understand the flow of events through your system and to troubleshoot issues.
- Locate the request you wish to inspect.
- For a summary of its associated data, click the request. Its details will display in the right-hand sidebar.
- You can expand the metadata and headers section in the right-hand sidebar to see more information.
{
"id": "req_M3ltWOSF8G6oMS9GS9XX",
"team_id": "tm_AkLVUIfTy4nn",
"verified": false,
"rejection_cause": null,
"original_event_data_id": "edt_3DzFKL5UU8TKsXJjgct7",
"ingest_priority": "NORMAL",
"ingested_at": "2022-07-29T13:55:10.238Z",
"source_id": "src_iEfHpkswbzGW",
"updated_at": "2022-07-29T13:55:15.369Z",
"created_at": "2022-07-29T13:55:15.092Z",
"events_count": 2,
"cli_events_count": 0,
"ignored_count": 4,
"data": {
"headers": {
"content-length": "18",
"content-type": "application/json",
"postman-token": "56fcfa62-9d0e-450f-a638-474b88f928ea",
"user-agent": "PostmanRuntime/7.29.2",
"x-hookdeck-original-ip": "172.18.0.1"
},
"body": {
"example": true
},
"query": "",
"parsed_query": {},
"path": "/"
}
}
For each request, the initial request's headers, path, body, and query are provided either as plain text or JSON. Additionally, a list of events and ignored events resulting from that request will be displayed below the request.
Request and event data
A request's associated events (including ignored events) store data. You can see this data in the right-hand sidebar when you select a request and an event. You can use this data to filter Requests, filter Events in the Events dashboard section, and track and resolve issues.
The displayed events depend on the current project view. Only CLI events will display in the CLI view and vice versa.
Request properties
Property | Description |
---|---|
Headers | Every header contained in the initial request (does not include Hookdeck's headers) |
Path | The complete path of the initial request |
Query | Every query included in the URL of the initial request |
Body | The initial request's payload (boolean , string , number , JSON , or null ) |
Event properties
Each event contains properties that can help you track and resolve issues.
Property | Description |
---|---|
Status | The cause for which the event was ignored |
ID | The event ID |
Connection | The associated connection of the ignored event |
Ignored event properties
Property | Description |
---|---|
Cause | The cause for which the event was ignored |
Connection | The associated connection of the ignored event |
Custom request views
Using custom request views allows you to preserve a filtered view of your requests for future access.
Create a custom view
- Open the Requests page.
- Make sure is expanded.
- When the desired filters are set, the results will automatically update.
- Once satisfied with your filters, click .
- Name your view and click .
Once saved, custom views are accessible in your dashboard's sidebar.
Update filters on a custom view
- Select the custom view in your dashboard's sidebar.
- Make sure is expanded.
- When the desired filters are set, the results will automatically update.
- Once satisfied with your filters, click .
Rename a custom view
- Select the custom view in your dashboard's sidebar.
- Open the dropdown next to the custom view name at the top of the page, and select Rename.
- Give your custom view a new name and click .