Deep Replay - Unitized (BZX Only)
If the sequence gap on login is greater than 1,000 messages, the login request will be rejected by Cboe with a reason of R (replay too deep). To recover the messages from the exchange, firms may login to an inactive (typically secondary or DR) BOE3 port and request a "deep replay" to recover the missing messages. See Failover and Disaster Recovery (DR) for additional details.
For a fully lossless experience, the login sequence would include a recovery path to secondary/DR port on a login failure due to "replay too deep":
| Direction | Message |
|---|---|
| Member → Cboe (primary A) | Login Request (to primary connection A) |
| Member ← Cboe (primary A) | Login Response is rejected (R = replay too Deep) |
| Member → Cboe (DR C) | Login Request (ReplayInstruction=D "deep replay") |
| Member ← Cboe (DR C) | Login Response (A=accepted) |
| Member ← Cboe (DR C) | (Replay of messages) |
| Member ← Cboe (DR C) | Replay Complete |
| Member ← Cboe (DR C) | Logout Response (LogoutReason=A (Admin)); an unsolicited logout |
| Member → Cboe (primary A) | Login Request (to primary connection A), using the updated sequence #. |
| Member ← Cboe (primary A) | Login Response is accepted ( A=Accepted) |
| Member ← Cboe (primary A) |
|
| Member ← Cboe (primary A) | Replay Complete |
| Member ←→ Cboe (primary A) | (Begin normal flow: Order traffic, or Heartbeats at 1/sec) |
| Field Name | Value | Comment |
|---|---|---|
| StartOfMessage | BO E3 | |
| MessageLength | 20 00 | 32 |
| MessageType | 01 00 | 1 (login request) |
| MatchingUnit | 00 | |
| Reserved | 00 | |
| SequenceNumber | 00 | (unsequenced) |
| SessionId | 41 42 43 44 | (ex. "ABCD") - Session Id as supplied by Cboe |
| SessionSubId | 30 30 30 31 | (ex. "0001") Session Sub Id as supplied by Cboe |
| Password |
| (ex. "abcdefghij") Password |
| ReplayInstruction | 52 | "D" - Deep replay request. |
| NumberOfUnits | 01 | The single unit for the unitized port is specified |
| →UnitNumber | 02 | Matching unit #2 |
| →UnitSequence | 52 0D 67 00 | Last SequenceNumber that member received with MatchUnit=2. Zero if member has not received anything for MatchUnit=2, for instance as the first login of the day. |





