Docs / EventSourcingDB / Errors / bound-type-missing

bound-type-missing

A bound leaves out its type.

  • Routes: read-events and observe-events
  • Description: bound type is missing: expected 'inclusive' or 'exclusive'
  • Details: bound, the bound that leaves out its type: lowerBound, or, when reading, upperBound.

Why It Happens#

A bound limits the events by their ID: lowerBound to those from an ID on, and, when reading, upperBound to those up to an ID, as described in Reading a Specific Range. Besides its id, every bound needs a type, which says whether the event with that ID belongs to the range. There is no default, so a bound such as { "id": "23" } is refused, and so is one whose type is an empty string.

The id of a bound is checked before its type, so a bound that leaves out both is reported as event-id-missing. A type other than inclusive or exclusive is reported as bound-type-unknown.

How to Fix It#

Give every bound its type: inclusive to include the event with its ID, exclusive to leave it out. To resume after the last event you received, for example, use its ID with exclusive. Sending the same request again fails the same way.

Example#

To read the events of /books/42 with a lowerBound of { "id": "23" }, EventSourcingDB answers with this error, as a line of the stream, and then ends the stream with its end item:

{
  "type": "error",
  "data": {
    "code": "https://docs.eventsourcingdb.io/errors/bound-type-missing",
    "description": "bound type is missing: expected 'inclusive' or 'exclusive'",
    "details": {
      "bound": "lowerBound"
    }
  }
}