Hi Folks, I have had a response from IB - again after much pushing - which (as promised) I am publishing here.
Hello *******,
We normally don't share this type/level of granularity to the customer. However, we are making an exception here.
1: This is related to the fact that UI related operations (creation of API page) are done from non-UI thread, this is harmless from functional point of view, but could cause residue/odd images on UI.
2: This affects only API because it is done from API related routine that creates API page.
3: This issue happens on all systems, when API page needs to be created
4: Now we create API page from UI thread when we think it will be needed
5: There is no workaround, development team has been asking to use 902 of TWS. The browser based is currently 903 already.
******* IB API Support
So what does this tell us?
Point #1 pretty much explicitly states that they still think that no functionality has been affected by this problem, which is worrying to say the least for all of us with continually busted first trades.
Point #4 is reliably vague. Once we upgrade, I guess I'm hoping to see the API page created when the first connection to TWS via the API is made. I'm not sure what else "when we think it will be needed" could possibly mean.
Point #5 is just wrong. Obviously, any operation that creates the API page should act as a workaround, now that we can be sure what the problem is. I'm guessing that requesting the nextValidId (as suggested by promagma) might even do the trick, but failing that some kind of tiny or out-of-market trade would do.
And what have we learned?
We now know that the problem IS related to the UI and not any internal settings, and that it occurs for all API users on all platforms. Interesting then that TWS Support claimed to us that their developers could not reproduce the bug and that they could not do anything without copious logs from us. And more logs after that.
We have learned that IB does no automated testing of the TWS API at all (even though this is pretty much industry standard practice these days), or a problem like this would not even exist. It's also very, very clear that the "it will be right in the next release" philosophy is alive and well at IB - but we all knew that.
It's also clear that the earlier responses by IB to this problem were (as is sadly common) just off-the-cuff guesswork. You know, the kind we can do ourselves without the resources of a whole company and team of TWS developers behind us.
I have recently been contacted privately about this issue by an IB employee, and I think him for his interest. I have found the customer-facing employees of IB to be uniformly courteous during this process, but largely ineffectual in actually resolving TWS API problems. I suspect there is a cultural problem with the TWS development team, and the poor communications on issues like this are just a symptom of that problem. Just the simple fact that a UI problem can stop an API trade from being performed tells us that they don't know how to architect an application in the first place. Coupled with their unbridled arrogance in (normally) refusing to discuss the causes/solutions of bugs, refusing to attempt to duplicate problems, using customers as beta-testers in their constant upgrade death-spiral, and complete lack of rigor in testing provides testament to that.
I'm hoping that this issue really is resolved now - it's only 2 months to the anniversary of this thread! - but I would urge anyone who encounters it again with release 902 onwards to post it here.