Please turn on Trader.LogLevel = Verbose and send us detailed logs to see what is happened.
I actually stepped through the code myself and identified the issue.
In InteractiveBrokersMessageAdapter_Transaction.cs class, in the ReadPortfolio(...) method, you handle a 'default' case if no other names match ("cashBalance, "Currency", etc), you are checking to see if currency.IsEmpty(), then if not, you assume the value must be a currency so you to create a Currency object with Value = value.To<decimal>(). However, that assumption is not going to be true for a number of attributes reported from IB.
This is all around line 600.
In my particular case, I had 2 fields that were being read from the socket with my Account # as the value, but my account # starts with a letter. So your code didn't match any of the fields in the case statement, so it assumed it must be currency and tried to convert to decimal and threw an exception. The takeaway is you can't assume it's a currency if no other names matched. In my case, there were at least 2 mismatched fields, one was named "AccountOrGroup".
I worked around the problem by commenting out that section of code. But I noticed that there are many other issues/bugs in the IB connector with regards to getting candlestick data. I'm getting exceptions where it's trying to convert numbers but it's getting strings.... maybe the message formats changed recently.
In any case, I'll try to get a log of that part.