Skip to content

gateway request ignored-events omits the cause field #430

Description

@leggetter

Summary

hookdeck gateway request ignored-events <request-id> omits the cause field, which is the main reason to call it. The API returns it; the CLI drops it.

Version: hookdeck-cli@2.6.0, API 2026-09-01.

Reproduction

$ hookdeck gateway request ignored-events req_QaYd8XpppTs6YPb1RVjV --output json
[
    {
        "id": "req_QaYd8XpppTs6YPb1RVjV:web_lTCewqHBj5SJ",
        "status": "",
        "webhook_id": "web_lTCewqHBj5SJ",
        "source_id": "",
        "destination_id": "",
        "request_id": "req_QaYd8XpppTs6YPb1RVjV",
        "attempts": 0,
        "created_at": "2026-09-23T17:43:14.025313Z",
        "updated_at": "2026-09-23T17:43:14.025313Z",
        "team_id": "tm_R9e4hwRe3ivo"
    }
]

The same record from GET /2026-09-01/requests/{id}/ignored_events:

keys: id, team_id, webhook_id, cause, request_id, meta, created_at, updated_at
webhook_id=web_lTCewqHBj5SJ cause=FILTERED request_id=req_QaYd8XpppTs6YPb1RVjV

Note also that source_id, destination_id and status are emitted as empty strings, and meta is dropped.

Why it matters

The causes are not interchangeable and a caller has to tell them apart:

  • FILTERED - the connection's filter rule did not match. Nothing was missed; this is correct behavior.
  • CLI_DISCONNECTED - the connection has a CLI destination and no session was listening. Something was missed.

Without cause, the CLI's output cannot distinguish "this connection correctly ignored an event it does not want" from "this machine was down and lost an event". Any script that builds on the CLI for recovery has to fall back to calling the API directly, which is what we ended up doing.

Concretely, for one request with a filtered connection and a disconnected one, the CLI shows two indistinguishable rows.

Expected

Include cause (and meta) in the output, and either populate or omit the fields currently returned as empty strings.

Found while building a demo of CLI destinations delivering to a fleet of machines, where recovering only the events a specific machine missed depends on reading cause.

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions