I am a huge fan of youtube videos when it comes to this kind of thing but I get your point. I did find this and will be following up with IB when I meet up with them next month.
I read through the docs that IB produce but I didn't see anything that leapt out at me regarding the source code. Thanks for pointing that out. I am using python for this.
As I said in my follow up post I found the layout of the log and will run the test tomorrow using it, to me it reads that the message format differs from your version
The log entries for API requests have the format:
[ClientID:ClientVersion:ServerVersion:ClientType:Request:Response:Version:LogEntryType]
where
ClientID - the clientId used when connecting.
ClientVersion - identifies the client's request stream (for internal use).
ServerVersion - identifies the server's response stream (for internal use).
ClientType - the type of API connection: DDE = 0, Socket = 1.
Request - If greater than 0, indicates that the log entry is the result of an API client request. The number shown is the request identifier as listed in the "Outgoing Request Identifiers" section below.
Response - If greater than 0, indicates that the log entry is the result of a server response to the API. The number shown is the response identifier as listed in the "Incoming Response Identifiers" section below.
Version - identifies the version of the request or response message. The version changes when the message format changes.
LogEntryLevel - identifies the type of log entry (i.e. the log level as listed above)
Example Log Entry:
[0:9:9:1:1:0:3:DET]Socket request - [3;52;IBM;STK;null;0.0;2;SMART;null;null]
From this example, we can tell that a socket client with clientId=0 connected and made a request for market data. The version of the market data request, which was 3,implies what data should have been sent.
Perhaps I am reading BOTH incorrectly. Thank you for taking the time to give me more information. I wanted to match my call to qualify contracts to the api log as it "seemed" simple. Decrypt the log to a text file and search for the relevant client call using the IB doc message layout. I'll take a quick look at EClientSocket tomorrow to see where I went wrong.
Ewald ( ib_insync) has coded up an EXCELLENT notebook that I was using to test out jupyter lab and that's how I dug myself into this. Normally I would be using pluto and julia but I was too lazy to add in the julia kernel. Ho hum. Thanks again for the WONDERFUL analysis.You are doing a marvelous job.