# stream-resume pydantic_v2.BaseModel
event ID cursors
  > GET https://api.example.com/events?topic=news last-event-id='0'
  checkpoint before any event ! ConfigurationError: ConfigurationError(reason='invalid_state', field_path='checkpoint.uncursored') [field_path=('checkpoint', 'uncursored')] invalid_state
  1 message id='1' retry=None data=Message{'text': 'a'} raw='{"text": "a"}'
  after one event saved {"bound": [], "cursor": "1", "expires_at": null}
  2 message id='1' retry=None data=Message{'text': 'b'} raw='{"text": "b"}'
  after an event without an ID saved {"bound": [], "cursor": "1", "expires_at": null}
  rest
    3 message id='2' retry=2500 data=Message{'text': 'c'} raw='{"text": "c"}'
  < closed
    end
  after the end saved {"bound": [], "cursor": "2", "expires_at": null}
  state repr {'cursor': '2', 'bound': [], 'expires_at': None}
  > GET https://api.example.com/events?topic=news last-event-id='2'
  resumed response 200 progress {'reconnects': 0}
  resumed
    1 message id='2' retry=None data=Message{'text': 'd'} raw='{"text": "d"}'
    2 message id='2' retry=None data=Message{'text': 'empty before any ID'} raw='{"text": "empty before any ID"}'
    3 message id='3' retry=None data=Message{'text': 'e'} raw='{"text": "e"}'
    4 message id=None retry=None data=Message{'text': 'cleared'} raw='{"text": "cleared"}'
  < closed
    end
  cleared saved {"bound": [], "cursor": null, "expires_at": null}
  > GET https://api.example.com/events?topic=news last-event-id=None
  resumed without a cursor
    1 message id='9' retry=None data=Message{'text': 'fresh'} raw='{"text": "fresh"}'
  < closed
    end
checkpoints
  > GET https://api.example.com/events last-event-id=None
  probed
    1 message id='1' retry=None data=Message{'text': 'a'} raw='{"text": "a"}'
  checkpoint while receiving ! ConfigurationError: ConfigurationError(reason='invalid_state', field_path='checkpoint.receiving') [field_path=('checkpoint', 'receiving')] invalid_state
    2 message id='1' retry=None data=Message{'text': 'b'} raw='{"text": "b"}'
  < closed
    end
  > GET https://api.example.com/events last-event-id=None
  failing
    1 message id='1' retry=None data=Message{'text': 'a'} raw='{"text": "a"}'
  < closed
    ! DecodeError: DecodeError(status_code=200, operation_id='streamEvents', reason='malformed', location='event.2') [operation_id='streamEvents', location=('event', 2), body_bytes=b'{broken', truncated=False, cause=1 validation error for Message
  Invalid JSON: key must be a string at line 1 column 2 [type=json_invalid, input_value=b'{broken', input_type=bytes]
    For further information visit https://errors.pydantic.dev/<version>/v/json_invalid] malformed
  failed saved {"bound": [], "cursor": "1", "expires_at": null}
  > GET https://api.example.com/events last-event-id=None
  < closed
  closed saved {"bound": [], "cursor": "1", "expires_at": null}
  > GET https://api.example.com/events last-event-id=None
  checkpoint of a call giving a cookie = {'cursor': '1', 'bound': [], 'expires_at': None}
  < closed
  > GET https://api.example.com/events last-event-id=None
  checkpoint without resume metadata ! ConfigurationError: ConfigurationError(reason='missing_metadata', field_path='resume') [field_path=('resume',)] missing_metadata
  progress without resume metadata {'reconnects': 0}
  < closed
  open patching the cursor header ! ConfigurationError: ConfigurationError(reason='invalid_value', field_path='options.extra_headers.last-event-id') [field_path=('options', 'extra_headers', 'last-event-id')] invalid_value
  open patching the cursor query ! ConfigurationError: ConfigurationError(reason='invalid_value', field_path='options.extra_query.after') [field_path=('options', 'extra_query', 'after')] invalid_value
  open through a view patching the cursor query ! ConfigurationError: ConfigurationError(reason='invalid_value', field_path='default_query.after') [field_path=('default_query', 'after')] invalid_value
  open through a view patching the cursor header ! ConfigurationError: ConfigurationError(reason='invalid_value', field_path='default_headers.last-event-id') [field_path=('default_headers', 'last-event-id')] invalid_value
  open on a client patching the cursor header ! ConfigurationError: ConfigurationError(reason='invalid_value', field_path='default_headers.Last-Event-ID') [field_path=('default_headers', 'Last-Event-ID')] invalid_value
  open fixing an idempotency key ! ConfigurationError: ConfigurationError(reason='invalid_value', field_path='options.idempotency_key') [field_path=('options', 'idempotency_key')] invalid_value
  > GET https://api.example.com/events?trace=1 last-event-id=None
  open patching other parameters
    1 message id='1' retry=None data=Message{'text': 'a'} raw='{"text": "a"}'
  < closed
    end
reconnections
  > GET https://api.example.com/events?topic=news last-event-id=None
  interrupted and reopened with a duplicate
    1 message id='1' retry=None data=Message{'text': 'a'} raw='{"text": "a"}'
  < closed
  > GET https://api.example.com/events?topic=news last-event-id='1'
    2 message id='1' retry=None data=Message{'text': 'a'} raw='{"text": "a"}'
    3 message id='2' retry=None data=Message{'text': 'b'} raw='{"text": "b"}'
  < closed
    end
    progress {'reconnects': 1} response 200
  > GET https://api.example.com/events last-event-id=None
  interrupted before any cursor
    1 message id=None retry=None data=Message{'text': 'no ID'} raw='{"text": "no ID"}'
  < closed
    ! StreamInterruptedError: StreamInterruptedError(operation_id='streamEvents', reason='transport', sequence=1) [operation_id='streamEvents', sequence=1, cause=APIConnectionError()] transport
  > GET https://api.example.com/events?topic=news last-event-id=None
  interrupted without reconnecting
    1 message id='1' retry=None data=Message{'text': 'a'} raw='{"text": "a"}'
  < closed
    ! StreamInterruptedError: StreamInterruptedError(operation_id='streamEvents', reason='transport', sequence=1) [operation_id='streamEvents', sequence=1, cause=APIConnectionError()] transport
  interruption saved {"bound": [], "cursor": "1", "expires_at": null}
  > GET https://api.example.com/events?topic=news last-event-id='1'
  resumed after the interruption
    1 message id='2' retry=None data=Message{'text': 'b'} raw='{"text": "b"}'
  < closed
    end
  > GET https://api.example.com/events last-event-id=None
  cut frame without incomplete_eof
    1 message id='1' retry=None data=Message{'text': 'a'} raw='{"text": "a"}'
  < closed
    end
  > GET https://api.example.com/events last-event-id=None
  reopened after the reconnection time
    1 message id='1' retry=1 data=Message{'text': 'a'} raw='{"text": "a"}'
  < closed
  > GET https://api.example.com/events last-event-id='1'
    2 message id='2' retry=1 data=Message{'text': 'b'} raw='{"text": "b"}'
  < closed
    end
  > GET https://api.example.com/events last-event-id=None
  reopened after the call's own read timeout
    1 message id='1' retry=None data=Message{'text': 'a'} raw='{"text": "a"}'
  < closed
  > GET https://api.example.com/events last-event-id='1'
    2 message id='2' retry=None data=Message{'text': 'b'} raw='{"text": "b"}'
  < closed
    end
failures that never reconnect
  > GET https://api.example.com/events last-event-id=None
  undecodable event
    1 message id='1' retry=None data=Message{'text': 'a'} raw='{"text": "a"}'
  < closed
    ! DecodeError: DecodeError(status_code=200, operation_id='streamEvents', reason='malformed', location='event.2') [operation_id='streamEvents', location=('event', 2), body_bytes=b'{broken', truncated=False, cause=1 validation error for Message
  Invalid JSON: key must be a string at line 1 column 2 [type=json_invalid, input_value=b'{broken', input_type=bytes]
    For further information visit https://errors.pydantic.dev/<version>/v/json_invalid] malformed
  > GET https://api.example.com/events last-event-id=None
  idle read
    1 message id='1' retry=None data=Message{'text': 'a'} raw='{"text": "a"}'
  < closed
  > GET https://api.example.com/events last-event-id='1'
    ! APIConnectionError: APIConnectionError(operation_id='streamEvents', cause='IndexError') [operation_id='streamEvents', cause=IndexError('pop from empty list')]
  > GET https://api.example.com/events last-event-id=None
  read timeout tied with the idle limit
    1 message id='1' retry=None data=Message{'text': 'a'} raw='{"text": "a"}'
  < closed
  > GET https://api.example.com/events last-event-id='1'
    ! APIConnectionError: APIConnectionError(operation_id='streamEvents', cause='IndexError') [operation_id='streamEvents', cause=IndexError('pop from empty list')]
  > GET https://api.example.com/events last-event-id=None
  read failure classified as not retryable
    1 message id='1' retry=None data=Message{'text': 'a'} raw='{"text": "a"}'
  < closed
    ! StreamInterruptedError: StreamInterruptedError(operation_id='streamEvents', reason='transport', sequence=1) [operation_id='streamEvents', sequence=1, cause=APIConnectionError()] transport
  > GET https://api.example.com/events last-event-id=None
  failure outside the read phase
    1 message id='1' retry=None data=Message{'text': 'a'} raw='{"text": "a"}'
  < closed
    ! StreamInterruptedError: StreamInterruptedError(operation_id='streamEvents', reason='transport', sequence=1) [operation_id='streamEvents', sequence=1, cause=APIConnectionError()] transport
  > GET https://api.example.com/events last-event-id=None
  < closed
  stopped ! Stop then ConfigurationError: ConfigurationError(reason='invalid_state', field_path='next.failed') [field_path=('next', 'failed')] invalid_state
  > GET https://api.example.com/events last-event-id=None
  < closed
  closed ConfigurationError: ConfigurationError(reason='invalid_state', field_path='next.closed') [field_path=('next', 'closed')] invalid_state
  > GET https://api.example.com/events last-event-id=None
  reopen answered 404
    1 message id='1' retry=None data=Message{'text': 'a'} raw='{"text": "a"}'
  < closed
  > GET https://api.example.com/events last-event-id='1'
  < closed
    ! NotFoundError: Error code: 404 - {"detail": "gone"} [operation_id='streamEvents', status_code=404, body=Problem(detail='gone'), body_bytes=b'{"detail": "gone"}', truncated=False]
  after the failed reopen saved {"bound": [], "cursor": "1", "expires_at": null}
  > GET https://api.example.com/events last-event-id=None
  error event
    1 created id='1' retry=None data=Created{'id': '1'} raw='{"id": "1"}'
  < closed
    ! ProtocolDataError: ProtocolDataError(operation_id='streamEvents', reason='error_event') [operation_id='streamEvents'] error_event
budgets
  > GET https://api.example.com/events last-event-id=None
  one reconnection allowed
    1 message id='1' retry=None data=Message{'text': 'a'} raw='{"text": "a"}'
  < closed
  > GET https://api.example.com/events last-event-id='1'
    2 message id='2' retry=None data=Message{'text': 'b'} raw='{"text": "b"}'
  < closed
    ! SessionLimitError: SessionLimitError(operation_id='streamEvents', reason='reconnects', limit=1) [operation_id='streamEvents', limit=1, cause=StreamInterruptedError()] reconnects
    progress {'reconnects': 1}
  > GET https://api.example.com/events last-event-id=None
  no reconnection allowed
    1 message id='1' retry=None data=Message{'text': 'a'} raw='{"text": "a"}'
  < closed
    ! SessionLimitError: SessionLimitError(operation_id='streamEvents', reason='reconnects', limit=0) [operation_id='streamEvents', limit=0, cause=StreamInterruptedError()] reconnects
waits
  > GET https://api.example.com/events last-event-id=None
  reconnection time over the allowed wait
    1 message id='1' retry=70000 data=Message{'text': 'a'} raw='{"text": "a"}'
  < closed
    ! StreamInterruptedError: StreamInterruptedError(operation_id='streamEvents', reason='transport', sequence=1) [operation_id='streamEvents', sequence=1, cause=APIConnectionError()] transport
  > GET https://api.example.com/events last-event-id=None
  reconnection time past the deadline
    1 message id='1' retry=70000 data=Message{'text': 'a'} raw='{"text": "a"}'
  < closed
    ! StreamInterruptedError: StreamInterruptedError(operation_id='streamEvents', reason='transport', sequence=1) [operation_id='streamEvents', sequence=1, cause=APIConnectionError()] transport
  > GET https://api.example.com/events last-event-id=None
  backoff cap over the allowed wait
    1 message id='1' retry=None data=Message{'text': 'a'} raw='{"text": "a"}'
  < closed
    ! StreamInterruptedError: StreamInterruptedError(operation_id='streamEvents', reason='transport', sequence=1) [operation_id='streamEvents', sequence=1, cause=APIConnectionError()] transport
another reopen operation
  > GET https://api.example.com/events last-event-id=None
  incomplete ends reopened
    1 created id='1' retry=None data=Created{'id': '1'} raw='{"id": "1"}'
  < closed
  > GET https://api.example.com/streams/s1?token=t1&mode=resume last-event-id='1'
    2 renamed id='2' retry=None data=UnknownEvent{'discriminator': 'renamed', 'raw_data': '{"id": "2"}'} raw='{"id": "2"}'
  < closed
  > GET https://api.example.com/streams/s1?token=t2&mode=resume last-event-id='2'
  < closed
    end
    progress {'reconnects': 2}
  tracked saved {"bound": ["s1", "t3", "resume"], "cursor": "2", "expires_at": "2999-01-01T00:00:00+00:00"}
  > GET https://api.example.com/streams/s1?token=t3&mode=resume last-event-id='2'
  resumed with the bindings
  < closed
    end
  resume an expired state ! ConfigurationError: ConfigurationError(reason='expired', field_path='state') [field_path=('state',)] expired
  resume a dot segment ! ProtocolDataError: ProtocolDataError(reason='value') [location=HeaderSelector(name='X-Stream-Id', occurrence='single')] value
  > GET https://api.example.com/events last-event-id=None
  < closed
  open without the stream ID ! ProtocolDataError: ProtocolDataError(reason='missing') [location=HeaderSelector(name='X-Stream-Id', occurrence='single')] missing
  > GET https://api.example.com/events last-event-id=None
  < closed
  open with two stream IDs ! ProtocolDataError: ProtocolDataError(reason='malformed') [location=HeaderSelector(name='X-Stream-Id', occurrence='single')] malformed
  > GET https://api.example.com/events last-event-id=None
  < closed
  open with a dot segment stream ID ! ProtocolDataError: ProtocolDataError(reason='value') [location=HeaderSelector(name='X-Stream-Id', occurrence='single')] value
  > GET https://api.example.com/events last-event-id=None
  < closed
  open without the expiry ! ProtocolDataError: ProtocolDataError(reason='missing') [location=HeaderSelector(name='X-Stream-Expires', occurrence='single')] missing
  > GET https://api.example.com/events last-event-id=None
  < closed
  open with two expiries ! ProtocolDataError: ProtocolDataError(reason='malformed') [location=HeaderSelector(name='X-Stream-Expires', occurrence='single')] malformed
  > GET https://api.example.com/events last-event-id=None
  < closed
  open with an unreadable expiry ! ProtocolDataError: ProtocolDataError(reason='value') [location=HeaderSelector(name='X-Stream-Expires', occurrence='single')] value
  > GET https://api.example.com/events last-event-id=None
  reopen without the token
    1 created id='1' retry=None data=Created{'id': '1'} raw='{"id": "1"}'
  < closed
  > GET https://api.example.com/streams/s1?token=t1&mode=resume last-event-id='1'
  < closed
    ! ProtocolDataError: ProtocolDataError(reason='missing') [location=HeaderSelector(name='X-Resume-Token', occurrence='single')] missing
  > GET https://api.example.com/events last-event-id=None
  open answered no content
  < closed
    end
  > GET https://api.example.com/events last-event-id=None
  < closed
  open answered a declared success without a body ! DecodeError: DecodeError(status_code=202, operation_id='streamEvents', reason='unexpected_media_type') [operation_id='streamEvents', body_bytes=b'', truncated=False] unexpected_media_type
  > GET https://api.example.com/events last-event-id=None
  reopen answered no content
    1 created id='1' retry=None data=Created{'id': '1'} raw='{"id": "1"}'
  < closed
  > GET https://api.example.com/streams/s1?token=t1&mode=resume last-event-id='1'
  < closed
    end
    progress {'reconnects': 1}
  > GET https://api.example.com/streams/s1?token=t3&mode=resume last-event-id='2'
  resume answered no content
  < closed
    end
bound path values
  > GET https://api.example.com/rooms/r0 last-event-id=None
  reopened with the shard
    1 message id='1' retry=None data=Message{'text': 'a'} raw='{"text": "a"}'
  < closed
  > GET https://api.example.com/rooms/r1 last-event-id='1'
    2 message id='2' retry=None data=Message{'text': 'b'} raw='{"text": "b"}'
  < closed
    end
  shard saved {"bound": ["2"], "cursor": "2", "expires_at": null}
  > GET https://api.example.com/rooms/.x last-event-id=None
  < closed
  open with a shard making a dot segment ! ProtocolDataError: ProtocolDataError(reason='value') [location=HeaderSelector(name='X-Shard', occurrence='single')] value
NDJSON body cursors
  > GET https://api.example.com/records last-event-id=None
  1  id=None retry=None data=Record{'id': 'r1', 'text': 'a'} raw='{"id": "r1", "text": "a"}'
  record saved {"bound": [], "cursor": "r1", "expires_at": null}
  2  id=None retry=None data=Record{'id': None, 'text': 'no ID'} raw='{"text": "no ID"}'
  record saved {"bound": [], "cursor": "r1", "expires_at": null}
  3  id=None retry=None data=Record{'id': None, 'text': 'cleared'} raw='{"id": null, "text": "cleared"}'
  record saved {"bound": [], "cursor": null, "expires_at": null}
  rest
    4  id=None retry=None data=Record{'id': 'r2', 'text': 'b'} raw='{"id": "r2", "text": "b"}'
  < closed
  > GET https://api.example.com/records?after=r2 last-event-id=None
    5  id=None retry=None data=Record{'id': 'r3', 'text': 'c'} raw='{"id": "r3", "text": "c"}'
  < closed
    end
  > GET https://api.example.com/records last-event-id=None
  ending cleared
    1  id=None retry=None data=Record{'id': 'r1', 'text': 'a'} raw='{"id": "r1", "text": "a"}'
    2  id=None retry=None data=Record{'id': None, 'text': 'no ID'} raw='{"text": "no ID"}'
    3  id=None retry=None data=Record{'id': None, 'text': 'cleared'} raw='{"id": null, "text": "cleared"}'
  < closed
    end
  > GET https://api.example.com/records last-event-id=None
  resumed without a cursor
    1  id=None retry=None data=Record{'id': 'r4', 'text': 'd'} raw='{"id": "r4", "text": "d"}'
  < closed
    end
SSE body cursors
  > POST https://api.example.com/feed last-event-id=None body=b'{"topic":"t"}'
  EOF before the sentinel reopened
    1 tick id=None retry=None data=Tick{'seq': 1} raw='{"seq": 1}'
    2 other id=None retry=None data=UnknownEvent{'discriminator': 'other', 'raw_data': '{"seq": 2}'} raw='{"seq": 2}'
  < closed
  > POST https://api.example.com/feed last-event-id=None body=b'{"topic":"t","after":2}'
    3 tick id=None retry=None data=Tick{'seq': 3} raw='{"seq": 3}'
  < closed
    end
  > POST https://api.example.com/feed last-event-id=None body=b'{"topic":"t"}'
  transport interruption not declared
    1 tick id=None retry=None data=Tick{'seq': 1} raw='{"seq": 1}'
  < closed
    ! StreamInterruptedError: StreamInterruptedError(operation_id='streamFeed', reason='transport', sequence=1) [operation_id='streamFeed', sequence=1, cause=APIConnectionError()] transport
  ticks saved {"bound": [], "cursor": 1, "expires_at": null}
  > POST https://api.example.com/feed last-event-id=None body=b'{"topic":"t","after":1}'
  resumed writing the body
  < closed
    end
  > POST https://api.example.com/feed last-event-id=None body=b'{"topic":"t"}'
  missing cursor
  < closed
    ! DecodeError: DecodeError(status_code=200, operation_id='streamFeed', reason='missing', location='event.1./seq') [operation_id='streamFeed', location=('event', 1, '/seq'), body_bytes=b'{}', truncated=False] missing
  > POST https://api.example.com/feed last-event-id=None body=b'{"topic":"t"}'
  null cursor
  < closed
    ! DecodeError: DecodeError(status_code=200, operation_id='streamFeed', reason='null', location='event.1./seq') [operation_id='streamFeed', location=('event', 1, '/seq'), body_bytes=b'{"seq": null}', truncated=False] null
  > POST https://api.example.com/feed last-event-id=None body=b'{"topic":"t"}'
  unknown event that is not JSON
  < closed
    ! DecodeError: DecodeError(status_code=200, operation_id='streamFeed', reason='missing', location='event.1./seq') [operation_id='streamFeed', location=('event', 1, '/seq'), body_bytes=b'plain', truncated=False] missing
cursors a reopen cannot encode
  > GET https://api.example.com/events last-event-id=None
  event ID ending in a space
    1 message id='5 ' retry=None data=Message{'text': 'a'} raw='{"text": "a"}'
  < closed
    ! ProtocolDataError: ProtocolDataError(operation_id='streamEvents', reason='value') [operation_id='streamEvents', location=ParameterTarget(location='header', name='Last-Event-ID'), cause=DecodeError()] value
    operation OperationRef(pointer='/paths/~1events/get', document=None) cause DecodeError context StreamInterruptedError
  checkpoint = {'cursor': '5 ', 'bound': [], 'expires_at': None}
  > GET https://api.example.com/events last-event-id=None
  event ID beyond ASCII
    1 message id='café' retry=None data=Message{'text': 'a'} raw='{"text": "a"}'
  < closed
    ! ProtocolDataError: ProtocolDataError(operation_id='streamEvents', reason='value') [operation_id='streamEvents', location=ParameterTarget(location='header', name='Last-Event-ID'), cause=DecodeError()] value
    operation OperationRef(pointer='/paths/~1events/get', document=None) cause DecodeError context StreamInterruptedError
  checkpoint = {'cursor': 'café', 'bound': [], 'expires_at': None}
  > GET https://api.example.com/events last-event-id=None
  object body cursor written to a query parameter
    1 other id=None retry=None data=UnknownEvent{'discriminator': 'other', 'raw_data': '{"id": {"a": 1}}'} raw='{"id": {"a": 1}}'
  < closed
    ! ProtocolDataError: ProtocolDataError(operation_id='streamEvents', reason='value') [operation_id='streamEvents', location=BodySelector(pointer='/id'), cause=DecodeError()] value
    operation OperationRef(pointer='/paths/~1events/get', document=None) cause DecodeError context StreamInterruptedError
  checkpoint = {'cursor': {'a': 1}, 'bound': [], 'expires_at': None}
cursors written as exploded query fields
  > GET https://api.example.com/marks last-event-id=None
  1 message id=None retry=None data=Mark{'scope': {'after': '5'}} raw='{"scope": {"after": "5"}}'
  scope saved {"bound": [], "cursor": {"after": "5"}, "expires_at": null}
  2 message id=None retry=None data=Mark{'scope': {'api_key': 'k'}} raw='{"scope": {"api_key": "k"}}'
  checkpoint of a credential field = {'cursor': {'api_key': 'k'}, 'bound': [], 'expires_at': None}
  < closed
  resume a credential field ! ConfigurationError: ConfigurationError(operation_id='streamMarks', reason='wrong_capability', field_path='arguments.query.scope') [operation_id='streamMarks', field_path=('arguments', 'query', 'scope')] wrong_capability
  > GET https://api.example.com/marks?after=5 last-event-id=None
  resumed after the scope
    1 message id=None retry=None data=Mark{'scope': {'after': '6'}} raw='{"scope": {"after": "6"}}'
  < closed
    end
refusals
  > GET https://api.example.com/events?topic=news last-event-id=None
  < closed
  > GET https://api.example.com/records last-event-id=None
  < closed
  resume a string ! ConfigurationError: ConfigurationError(reason='invalid_value', field_path='state') [field_path=('state',)] invalid_value
  resume an object ! ConfigurationError: ConfigurationError(reason='invalid_value', field_path='state') [field_path=('state',)] invalid_value
  resume missing members ! ConfigurationError: ConfigurationError(reason='invalid_value', field_path='state') [field_path=('state',)] invalid_value
  resume cursor not a string ! ConfigurationError: ConfigurationError(reason='invalid_value', field_path='state') [field_path=('state',)] invalid_value
  resume empty cursor ! ConfigurationError: ConfigurationError(reason='invalid_value', field_path='state') [field_path=('state',)] invalid_value
  resume bound values of another count ! ConfigurationError: ConfigurationError(reason='invalid_value', field_path='state') [field_path=('state',)] invalid_value
  resume an extra member ! ConfigurationError: ConfigurationError(reason='invalid_value', field_path='state') [field_path=('state',)] invalid_value
  resume an expiry of another form ! ConfigurationError: ConfigurationError(reason='invalid_value', field_path='state') [field_path=('state',)] invalid_value
  resume cursor the reopen cannot encode ! DecodeError: DecodeError(operation_id='streamEvents', reason='unencodable', location='header.Last-Event-ID') [operation_id='streamEvents', location=('header', 'Last-Event-ID'), body_bytes=b'', truncated=False, cause=ParameterEncodingError('A header value contains control characters, non-ASCII text, surrounding whitespace, or a list delimiter')] unencodable
  resume cursor beyond ASCII ! DecodeError: DecodeError(operation_id='streamEvents', reason='unencodable', location='header.Last-Event-ID') [operation_id='streamEvents', location=('header', 'Last-Event-ID'), body_bytes=b'', truncated=False, cause=ParameterEncodingError('A header value contains control characters, non-ASCII text, surrounding whitespace, or a list delimiter')] unencodable
  object cursor ! DecodeError: DecodeError(operation_id='streamRecords', reason='unencodable', location='query.after') [operation_id='streamRecords', location=('query', 'after'), body_bytes=b'', truncated=False, cause=ParameterEncodingError('The dict value does not have the string lexical kind')] unencodable
  > GET https://api.example.com/events last-event-id=None
  < closed
  resume arguments of another operation ! ConfigurationError: ConfigurationError(reason='invalid_value', field_path='state') [field_path=('state',)] invalid_value
  > POST https://api.example.com/feed last-event-id=None body=b'{"topic":"t"}'
  checkpoint of changed invalid body = {'cursor': 1, 'bound': [], 'expires_at': None}
  < closed
  > POST https://api.example.com/search-feed?term=news last-event-id=None body=b'{"topic":"t"}'
  checkpoint of ordinary querystring = 'dict'
  < closed
  > POST https://api.example.com/search-feed?api_key=secret last-event-id=None body=b'{"topic":"t"}'
  checkpoint of credential querystring = 'dict'
  < closed
  ticks cleared cursor ! ConfigurationError: ConfigurationError(reason='invalid_value', field_path='state') [field_path=('state',)] invalid_value
  > POST https://api.example.com/feed last-event-id=None body=b'{"topic":"t","after":{"$gt":0}}'
  ticks cursor replaced by an object, written as the server's
  < closed
    end
  > GET https://api.example.com/events?topic=news last-event-id='1'
  resume after the refusals
    1 message id='2' retry=None data=Message{'text': 'b'} raw='{"text": "b"}'
  < closed
    end
asyncio
  > GET https://api.example.com/events?topic=news last-event-id=None
  async reopened
    1 message id='1' retry=1 data=Message{'text': 'a'} raw='{"text": "a"}'
  < closed
  > GET https://api.example.com/events?topic=news last-event-id='1'
    2 message id='2' retry=1 data=Message{'text': 'b'} raw='{"text": "b"}'
  < closed
    end
  async saved {"bound": [], "cursor": "2", "expires_at": null}
  > GET https://api.example.com/events?topic=news last-event-id='2'
  async resumed
    1 message id='3' retry=None data=Message{'text': 'c'} raw='{"text": "c"}'
  < closed
    end
  > GET https://api.example.com/events last-event-id=None
  async no reconnection allowed
    1 message id='1' retry=None data=Message{'text': 'a'} raw='{"text": "a"}'
  < closed
    ! SessionLimitError: SessionLimitError(operation_id='streamEvents', reason='reconnects', limit=0) [operation_id='streamEvents', limit=0, cause=StreamInterruptedError()] reconnects
  > GET https://api.example.com/events last-event-id=None
  async past the deadline
    1 message id='1' retry=70000 data=Message{'text': 'a'} raw='{"text": "a"}'
  < closed
    ! StreamInterruptedError: StreamInterruptedError(operation_id='streamEvents', reason='transport', sequence=1) [operation_id='streamEvents', sequence=1, cause=APIConnectionError()] transport
  > GET https://api.example.com/events last-event-id=None
  < closed
    ! ProtocolDataError: ProtocolDataError(operation_id='streamEvents', reason='value') [operation_id='streamEvents', location=ParameterTarget(location='header', name='Last-Event-ID'), cause=DecodeError()] value
    operation OperationRef(pointer='/paths/~1events/get', document=None) cause DecodeError context StreamInterruptedError
  > GET https://api.example.com/events last-event-id=None
  < closed
  async stopped ! Stop
  > GET https://api.example.com/events last-event-id=None
  < closed
  async open without the stream ID ! ProtocolDataError: ProtocolDataError(reason='missing') [location=HeaderSelector(name='X-Stream-Id', occurrence='single')] missing
  > GET https://api.example.com/events last-event-id=None
  async reopen without the token
    1 created id='1' retry=None data=Created{'id': '1'} raw='{"id": "1"}'
  < closed
  > GET https://api.example.com/streams/s1?token=t1&mode=resume last-event-id='1'
  < closed
    ! ProtocolDataError: ProtocolDataError(reason='missing') [location=HeaderSelector(name='X-Resume-Token', occurrence='single')] missing
  > GET https://api.example.com/events last-event-id=None
  < closed
  > GET https://api.example.com/streams/s1?token=t1&mode=resume last-event-id='1'
  < closed
  async resume without the token ! ProtocolDataError: ProtocolDataError(reason='missing') [location=HeaderSelector(name='X-Resume-Token', occurrence='single')] missing
  > GET https://api.example.com/events last-event-id=None
  async open answered no content
  < closed
    end
  > GET https://api.example.com/events last-event-id=None
  async reopen answered no content
    1 created id='1' retry=None data=Created{'id': '1'} raw='{"id": "1"}'
  < closed
  > GET https://api.example.com/streams/s1?token=t1&mode=resume last-event-id='1'
  < closed
    end
stepped client clock
  > GET https://api.example.com/events last-event-id=None
  1 created id='1' retry=None data=Created{'id': '1'} raw='{"id": "1"}'
  < closed
  > GET https://api.example.com/streams/s1?token=t1&mode=resume last-event-id='1'
  resumed and reconnected
    1 created id='2' retry=6000 data=Created{'id': '2'} raw='{"id": "2"}'
  < closed
  > GET https://api.example.com/streams/s1?token=t1&mode=resume last-event-id='2'
    2 created id='3' retry=6000 data=Created{'id': '3'} raw='{"id": "3"}'
  < closed
    end
  clock checkpoint saved {"bound": ["s1", "t1", "resume"], "cursor": "3", "expires_at": "2000-01-01T00:00:00+00:00"}
  clock progress {'reconnects': 1}
  expired on the client wall clock ! ConfigurationError: ConfigurationError(reason='expired', field_path='state') [field_path=('state',)] expired
async stepped client clock
  > GET https://api.example.com/events last-event-id=None
  1 created id='1' retry=None data=Created{'id': '1'} raw='{"id": "1"}'
  < closed
  > GET https://api.example.com/streams/s1?token=t1&mode=resume last-event-id='1'
  resumed and reconnected
    1 created id='2' retry=6000 data=Created{'id': '2'} raw='{"id": "2"}'
  < closed
  > GET https://api.example.com/streams/s1?token=t1&mode=resume last-event-id='2'
    2 created id='3' retry=6000 data=Created{'id': '3'} raw='{"id": "3"}'
  < closed
    end
  clock checkpoint saved {"bound": ["s1", "t1", "resume"], "cursor": "3", "expires_at": "2000-01-01T00:00:00+00:00"}
  clock progress {'reconnects': 1}
reconnection waits through the client clock's sleep
  > GET https://api.example.com/events last-event-id=None
  reconnected twice
    1 message id='1' retry=None data=Message{'text': 'a'} raw='{"text": "a"}'
  < closed
  > GET https://api.example.com/events last-event-id='1'
    2 message id='2' retry=2500 data=Message{'text': 'b'} raw='{"text": "b"}'
  < closed
  > GET https://api.example.com/events last-event-id='2'
    3 message id='3' retry=2500 data=Message{'text': 'c'} raw='{"text": "c"}'
  < closed
    end
  waits [0.5, 2.5]
  > GET https://api.example.com/events last-event-id=None
  async reconnected twice
    1 message id='1' retry=None data=Message{'text': 'a'} raw='{"text": "a"}'
  < closed
  > GET https://api.example.com/events last-event-id='1'
    2 message id='2' retry=2500 data=Message{'text': 'b'} raw='{"text": "b"}'
  < closed
  > GET https://api.example.com/events last-event-id='2'
    3 message id='3' retry=2500 data=Message{'text': 'c'} raw='{"text": "c"}'
  < closed
    end
  async waits [0.5, 2.5]
stream write guards
  > GET https://api.example.com/marks last-event-id=None
credential reconnect scoped authenticated=False
  < closed
  refused ConfigurationError condition=None path=('arguments', 'query', 'scope') operation=None operation_id='streamMarks' cause=NoneType context=NoneType
  new sends=0
credential checkpoint
  returned dict
  new sends=0
  > GET https://api.example.com/marks last-event-id=None
credential reconnect bound authenticated=False
  < closed
  refused ConfigurationError condition=None path=('arguments', 'query', 'scope') operation=None operation_id='streamMarks' cause=NoneType context=NoneType
  new sends=0
credential checkpoint
  returned dict
  new sends=0
  > GET https://api.example.com/deep-marks last-event-id=None
credential reconnect deep authenticated=False
  < closed
  refused ConfigurationError condition=None path=('arguments', 'query', 'scope') operation=None operation_id='streamDeepMarks' cause=NoneType context=NoneType
  new sends=0
credential checkpoint
  returned dict
  new sends=0
  > GET https://api.example.com/deep-marks last-event-id=None
credential reconnect deepbound authenticated=False
  < closed
  refused ConfigurationError condition=None path=('arguments', 'query', 'scope') operation=None operation_id='streamDeepMarks' cause=NoneType context=NoneType
  new sends=0
credential checkpoint
  returned dict
  new sends=0
  > GET https://api.example.com/marks last-event-id=None
credential reconnect scoped authenticated=True
  < closed
  refused ConfigurationError condition=None path=('arguments', 'query', 'scope') operation=None operation_id='streamMarks' cause=NoneType context=NoneType
  new sends=0
credential checkpoint
  returned dict
  new sends=0
  > GET https://api.example.com/marks last-event-id=None
credential reconnect bound authenticated=True
  < closed
  refused ConfigurationError condition=None path=('arguments', 'query', 'scope') operation=None operation_id='streamMarks' cause=NoneType context=NoneType
  new sends=0
credential checkpoint
  returned dict
  new sends=0
  > GET https://api.example.com/deep-marks last-event-id=None
credential reconnect deep authenticated=True
  < closed
  refused ConfigurationError condition=None path=('arguments', 'query', 'scope') operation=None operation_id='streamDeepMarks' cause=NoneType context=NoneType
  new sends=0
credential checkpoint
  returned dict
  new sends=0
  > GET https://api.example.com/deep-marks last-event-id=None
credential reconnect deepbound authenticated=True
  < closed
  refused ConfigurationError condition=None path=('arguments', 'query', 'scope') operation=None operation_id='streamDeepMarks' cause=NoneType context=NoneType
  new sends=0
credential checkpoint
  returned dict
  new sends=0
safe authenticated reconnect
  > GET https://api.example.com/marks last-event-id=None
  < closed
  > GET https://api.example.com/marks?after=5 last-event-id=None
  delivered sequence=2
  < closed
active auth collision on open
  > GET https://api.example.com/marks?api_key=SERVER_KEY last-event-id=None
  refused APIConnectionError condition=None path=() operation=None operation_id='streamMarks' cause=IndexError context=IndexError
  new sends=1
query patch scoped scope client
  refused ConfigurationError condition=None path=('default_query', 'scope') operation=None operation_id=None cause=NoneType context=NoneType
  new sends=0
query patch scoped scope view
  refused ConfigurationError condition=None path=('default_query', 'scope') operation=None operation_id=None cause=NoneType context=NoneType
  new sends=0
query patch scoped scope call
  refused ConfigurationError condition=None path=('options', 'extra_query', 'scope') operation=None operation_id=None cause=NoneType context=NoneType
  new sends=0
query patch scoped after client
  refused ConfigurationError condition=None path=('default_query', 'after') operation=None operation_id=None cause=NoneType context=NoneType
  new sends=0
query patch scoped after view
  refused ConfigurationError condition=None path=('default_query', 'after') operation=None operation_id=None cause=NoneType context=NoneType
  new sends=0
query patch scoped after call
  refused ConfigurationError condition=None path=('options', 'extra_query', 'after') operation=None operation_id=None cause=NoneType context=NoneType
  new sends=0
query patch scoped page client
  refused ConfigurationError condition=None path=('default_query', 'page') operation=None operation_id=None cause=NoneType context=NoneType
  new sends=0
query patch scoped page view
  refused ConfigurationError condition=None path=('default_query', 'page') operation=None operation_id=None cause=NoneType context=NoneType
  new sends=0
query patch scoped page call
  refused ConfigurationError condition=None path=('options', 'extra_query', 'page') operation=None operation_id=None cause=NoneType context=NoneType
  new sends=0
query patch scoped tag client
  refused ConfigurationError condition=None path=('default_query', 'tag') operation=None operation_id=None cause=NoneType context=NoneType
  new sends=0
query patch scoped tag view
  refused ConfigurationError condition=None path=('default_query', 'tag') operation=None operation_id=None cause=NoneType context=NoneType
  new sends=0
query patch scoped tag call
  refused ConfigurationError condition=None path=('options', 'extra_query', 'tag') operation=None operation_id=None cause=NoneType context=NoneType
  new sends=0
query patch named after client
  refused ConfigurationError condition=None path=('default_query', 'after') operation=None operation_id=None cause=NoneType context=NoneType
  new sends=0
query patch named after view
  refused ConfigurationError condition=None path=('default_query', 'after') operation=None operation_id=None cause=NoneType context=NoneType
  new sends=0
query patch named after call
  refused ConfigurationError condition=None path=('options', 'extra_query', 'after') operation=None operation_id=None cause=NoneType context=NoneType
  new sends=0
query patch deep scope[after] client
  refused ConfigurationError condition=None path=('default_query', 'scope[after]') operation=None operation_id=None cause=NoneType context=NoneType
  new sends=0
query patch deep scope[after] view
  refused ConfigurationError condition=None path=('default_query', 'scope[after]') operation=None operation_id=None cause=NoneType context=NoneType
  new sends=0
query patch deep scope[after] call
  refused ConfigurationError condition=None path=('options', 'extra_query', 'scope[after]') operation=None operation_id=None cause=NoneType context=NoneType
  new sends=0
query patch deep scope[page] client
  refused ConfigurationError condition=None path=('default_query', 'scope[page]') operation=None operation_id=None cause=NoneType context=NoneType
  new sends=0
query patch deep scope[page] view
  refused ConfigurationError condition=None path=('default_query', 'scope[page]') operation=None operation_id=None cause=NoneType context=NoneType
  new sends=0
query patch deep scope[page] call
  refused ConfigurationError condition=None path=('options', 'extra_query', 'scope[page]') operation=None operation_id=None cause=NoneType context=NoneType
  new sends=0
query patch deep scope[tag] client
  refused ConfigurationError condition=None path=('default_query', 'scope[tag]') operation=None operation_id=None cause=NoneType context=NoneType
  new sends=0
query patch deep scope[tag] view
  refused ConfigurationError condition=None path=('default_query', 'scope[tag]') operation=None operation_id=None cause=NoneType context=NoneType
  new sends=0
query patch deep scope[tag] call
  refused ConfigurationError condition=None path=('options', 'extra_query', 'scope[tag]') operation=None operation_id=None cause=NoneType context=NoneType
  new sends=0
  > GET https://api.example.com/marks?tag=kept last-event-id=None
  < closed
  > GET https://api.example.com/marks?tag=kept&after=5&page=dynamic last-event-id=None
  scoped saved cleared cursor=None
  < closed
  > GET https://api.example.com/marks?tag=kept last-event-id=None
  < closed
  > GET https://api.example.com/marks?tag=kept last-event-id=None
  < closed
cleared resume patch scoped after
  refused ConfigurationError condition=None path=('options', 'extra_query', 'after') operation=None operation_id=None cause=NoneType context=NoneType
  new sends=0
cleared resume patch scoped page
  refused ConfigurationError condition=None path=('options', 'extra_query', 'page') operation=None operation_id=None cause=NoneType context=NoneType
  new sends=0
  > GET https://api.example.com/named-marks?tag=kept last-event-id=None
  < closed
  > GET https://api.example.com/named-marks?tag=kept&after=5 last-event-id=None
  named saved cleared cursor=None
  < closed
  > GET https://api.example.com/named-marks?tag=kept last-event-id=None
  < closed
  > GET https://api.example.com/named-marks?tag=kept last-event-id=None
  < closed
cleared resume patch named after
  refused ConfigurationError condition=None path=('options', 'extra_query', 'after') operation=None operation_id=None cause=NoneType context=NoneType
  new sends=0
  > GET https://api.example.com/deep-marks?tag=kept last-event-id=None
  < closed
  > GET https://api.example.com/deep-marks?tag=kept&scope%5Bafter%5D=5&scope%5Bpage%5D=dynamic last-event-id=None
  deep saved cleared cursor=None
  < closed
  > GET https://api.example.com/deep-marks?tag=kept last-event-id=None
  < closed
  > GET https://api.example.com/deep-marks?tag=kept last-event-id=None
  < closed
cleared resume patch deep scope[after]
  refused ConfigurationError condition=None path=('options', 'extra_query', 'scope[after]') operation=None operation_id=None cause=NoneType context=NoneType
  new sends=0
  > GET https://api.example.com/named-marks?page=unrelated last-event-id=None
  < closed
  > GET https://api.example.com/named-marks?after=5&page=unrelated last-event-id=None
  < closed
  > GET https://api.example.com/named-marks?scope=unrelated last-event-id=None
  < closed
  > GET https://api.example.com/named-marks?after=5&scope=unrelated last-event-id=None
  < closed
  > GET https://api.example.com/deep-marks?scope=unrelated last-event-id=None
  < closed
  > GET https://api.example.com/deep-marks?scope%5Bafter%5D=5&scope=unrelated last-event-id=None
  < closed
  > GET https://api.example.com/deep-marks?scope%5Bafter=unrelated last-event-id=None
  < closed
  > GET https://api.example.com/deep-marks?other=unrelated last-event-id=None
  < closed
  > POST https://api.example.com/search-feed last-event-id=None body=b'{"topic":"t"}'
credential reconnect into a querystring
  < closed
  refused ConfigurationError condition=None path=('arguments', 'querystring', 'criteria') operation=None operation_id='searchFeed' cause=NoneType context=NoneType
  new sends=0
credential resume into a querystring
  refused ConfigurationError condition=None path=('arguments', 'querystring', 'criteria') operation=None operation_id='searchFeed' cause=NoneType context=NoneType
  new sends=0
  > POST https://api.example.com/feed?tag=kept last-event-id=None body=b'{"topic":"t"}'
  < closed
  > POST https://api.example.com/feed?tag=kept last-event-id=None body=b'{"topic":"t","after":1}'
  < closed
  > GET https://api.example.com/records?tag=kept last-event-id=None
  < closed
  > GET https://api.example.com/records?after=r1&tag=kept last-event-id=None
  < closed
async stream write guards
  > GET https://api.example.com/marks last-event-id=None
credential reconnect scoped authenticated=False
  < closed
  refused ConfigurationError condition=None path=('arguments', 'query', 'scope') operation=None operation_id='streamMarks' cause=NoneType context=NoneType
  new sends=0
credential checkpoint
  returned dict
  new sends=0
  > GET https://api.example.com/marks last-event-id=None
credential reconnect bound authenticated=False
  < closed
  refused ConfigurationError condition=None path=('arguments', 'query', 'scope') operation=None operation_id='streamMarks' cause=NoneType context=NoneType
  new sends=0
credential checkpoint
  returned dict
  new sends=0
  > GET https://api.example.com/deep-marks last-event-id=None
credential reconnect deep authenticated=False
  < closed
  refused ConfigurationError condition=None path=('arguments', 'query', 'scope') operation=None operation_id='streamDeepMarks' cause=NoneType context=NoneType
  new sends=0
credential checkpoint
  returned dict
  new sends=0
  > GET https://api.example.com/deep-marks last-event-id=None
credential reconnect deepbound authenticated=False
  < closed
  refused ConfigurationError condition=None path=('arguments', 'query', 'scope') operation=None operation_id='streamDeepMarks' cause=NoneType context=NoneType
  new sends=0
credential checkpoint
  returned dict
  new sends=0
  > GET https://api.example.com/marks last-event-id=None
credential reconnect scoped authenticated=True
  < closed
  refused ConfigurationError condition=None path=('arguments', 'query', 'scope') operation=None operation_id='streamMarks' cause=NoneType context=NoneType
  new sends=0
credential checkpoint
  returned dict
  new sends=0
  > GET https://api.example.com/marks last-event-id=None
credential reconnect bound authenticated=True
  < closed
  refused ConfigurationError condition=None path=('arguments', 'query', 'scope') operation=None operation_id='streamMarks' cause=NoneType context=NoneType
  new sends=0
credential checkpoint
  returned dict
  new sends=0
  > GET https://api.example.com/deep-marks last-event-id=None
credential reconnect deep authenticated=True
  < closed
  refused ConfigurationError condition=None path=('arguments', 'query', 'scope') operation=None operation_id='streamDeepMarks' cause=NoneType context=NoneType
  new sends=0
credential checkpoint
  returned dict
  new sends=0
  > GET https://api.example.com/deep-marks last-event-id=None
credential reconnect deepbound authenticated=True
  < closed
  refused ConfigurationError condition=None path=('arguments', 'query', 'scope') operation=None operation_id='streamDeepMarks' cause=NoneType context=NoneType
  new sends=0
credential checkpoint
  returned dict
  new sends=0
safe authenticated reconnect
  > GET https://api.example.com/marks last-event-id=None
  < closed
  > GET https://api.example.com/marks?after=5 last-event-id=None
  delivered sequence=2
  < closed
active auth collision on open
  > GET https://api.example.com/marks?api_key=SERVER_KEY last-event-id=None
  refused APIConnectionError condition=None path=() operation=None operation_id='streamMarks' cause=IndexError context=IndexError
  new sends=1
query patch scoped scope client
  refused ConfigurationError condition=None path=('default_query', 'scope') operation=None operation_id=None cause=NoneType context=NoneType
  new sends=0
query patch scoped scope view
  refused ConfigurationError condition=None path=('default_query', 'scope') operation=None operation_id=None cause=NoneType context=NoneType
  new sends=0
query patch scoped scope call
  refused ConfigurationError condition=None path=('options', 'extra_query', 'scope') operation=None operation_id=None cause=NoneType context=NoneType
  new sends=0
query patch scoped after client
  refused ConfigurationError condition=None path=('default_query', 'after') operation=None operation_id=None cause=NoneType context=NoneType
  new sends=0
query patch scoped after view
  refused ConfigurationError condition=None path=('default_query', 'after') operation=None operation_id=None cause=NoneType context=NoneType
  new sends=0
query patch scoped after call
  refused ConfigurationError condition=None path=('options', 'extra_query', 'after') operation=None operation_id=None cause=NoneType context=NoneType
  new sends=0
query patch scoped page client
  refused ConfigurationError condition=None path=('default_query', 'page') operation=None operation_id=None cause=NoneType context=NoneType
  new sends=0
query patch scoped page view
  refused ConfigurationError condition=None path=('default_query', 'page') operation=None operation_id=None cause=NoneType context=NoneType
  new sends=0
query patch scoped page call
  refused ConfigurationError condition=None path=('options', 'extra_query', 'page') operation=None operation_id=None cause=NoneType context=NoneType
  new sends=0
query patch scoped tag client
  refused ConfigurationError condition=None path=('default_query', 'tag') operation=None operation_id=None cause=NoneType context=NoneType
  new sends=0
query patch scoped tag view
  refused ConfigurationError condition=None path=('default_query', 'tag') operation=None operation_id=None cause=NoneType context=NoneType
  new sends=0
query patch scoped tag call
  refused ConfigurationError condition=None path=('options', 'extra_query', 'tag') operation=None operation_id=None cause=NoneType context=NoneType
  new sends=0
query patch named after client
  refused ConfigurationError condition=None path=('default_query', 'after') operation=None operation_id=None cause=NoneType context=NoneType
  new sends=0
query patch named after view
  refused ConfigurationError condition=None path=('default_query', 'after') operation=None operation_id=None cause=NoneType context=NoneType
  new sends=0
query patch named after call
  refused ConfigurationError condition=None path=('options', 'extra_query', 'after') operation=None operation_id=None cause=NoneType context=NoneType
  new sends=0
query patch deep scope[after] client
  refused ConfigurationError condition=None path=('default_query', 'scope[after]') operation=None operation_id=None cause=NoneType context=NoneType
  new sends=0
query patch deep scope[after] view
  refused ConfigurationError condition=None path=('default_query', 'scope[after]') operation=None operation_id=None cause=NoneType context=NoneType
  new sends=0
query patch deep scope[after] call
  refused ConfigurationError condition=None path=('options', 'extra_query', 'scope[after]') operation=None operation_id=None cause=NoneType context=NoneType
  new sends=0
query patch deep scope[page] client
  refused ConfigurationError condition=None path=('default_query', 'scope[page]') operation=None operation_id=None cause=NoneType context=NoneType
  new sends=0
query patch deep scope[page] view
  refused ConfigurationError condition=None path=('default_query', 'scope[page]') operation=None operation_id=None cause=NoneType context=NoneType
  new sends=0
query patch deep scope[page] call
  refused ConfigurationError condition=None path=('options', 'extra_query', 'scope[page]') operation=None operation_id=None cause=NoneType context=NoneType
  new sends=0
query patch deep scope[tag] client
  refused ConfigurationError condition=None path=('default_query', 'scope[tag]') operation=None operation_id=None cause=NoneType context=NoneType
  new sends=0
query patch deep scope[tag] view
  refused ConfigurationError condition=None path=('default_query', 'scope[tag]') operation=None operation_id=None cause=NoneType context=NoneType
  new sends=0
query patch deep scope[tag] call
  refused ConfigurationError condition=None path=('options', 'extra_query', 'scope[tag]') operation=None operation_id=None cause=NoneType context=NoneType
  new sends=0
  > GET https://api.example.com/marks?tag=kept last-event-id=None
  < closed
  > GET https://api.example.com/marks?tag=kept&after=5&page=dynamic last-event-id=None
  scoped saved cleared cursor=None
  < closed
  > GET https://api.example.com/marks?tag=kept last-event-id=None
  < closed
  > GET https://api.example.com/marks?tag=kept last-event-id=None
  < closed
cleared resume patch scoped after
  refused ConfigurationError condition=None path=('options', 'extra_query', 'after') operation=None operation_id=None cause=NoneType context=NoneType
  new sends=0
cleared resume patch scoped page
  refused ConfigurationError condition=None path=('options', 'extra_query', 'page') operation=None operation_id=None cause=NoneType context=NoneType
  new sends=0
  > GET https://api.example.com/named-marks?tag=kept last-event-id=None
  < closed
  > GET https://api.example.com/named-marks?tag=kept&after=5 last-event-id=None
  named saved cleared cursor=None
  < closed
  > GET https://api.example.com/named-marks?tag=kept last-event-id=None
  < closed
  > GET https://api.example.com/named-marks?tag=kept last-event-id=None
  < closed
cleared resume patch named after
  refused ConfigurationError condition=None path=('options', 'extra_query', 'after') operation=None operation_id=None cause=NoneType context=NoneType
  new sends=0
  > GET https://api.example.com/deep-marks?tag=kept last-event-id=None
  < closed
  > GET https://api.example.com/deep-marks?tag=kept&scope%5Bafter%5D=5&scope%5Bpage%5D=dynamic last-event-id=None
  deep saved cleared cursor=None
  < closed
  > GET https://api.example.com/deep-marks?tag=kept last-event-id=None
  < closed
  > GET https://api.example.com/deep-marks?tag=kept last-event-id=None
  < closed
cleared resume patch deep scope[after]
  refused ConfigurationError condition=None path=('options', 'extra_query', 'scope[after]') operation=None operation_id=None cause=NoneType context=NoneType
  new sends=0
  > GET https://api.example.com/named-marks?page=unrelated last-event-id=None
  < closed
  > GET https://api.example.com/named-marks?after=5&page=unrelated last-event-id=None
  < closed
  > GET https://api.example.com/named-marks?scope=unrelated last-event-id=None
  < closed
  > GET https://api.example.com/named-marks?after=5&scope=unrelated last-event-id=None
  < closed
  > GET https://api.example.com/deep-marks?scope=unrelated last-event-id=None
  < closed
  > GET https://api.example.com/deep-marks?scope%5Bafter%5D=5&scope=unrelated last-event-id=None
  < closed
  > GET https://api.example.com/records?tag=kept last-event-id=None
  < closed
  > GET https://api.example.com/records?after=r1&tag=kept last-event-id=None
  < closed
