I'm trying to write a simple iron condor strategy to get a handle on how options work at QC. Everything mostly seems to work: Iron condor set up 3 weeks before monthly expiration date. However, for no reason that I can discern, when placing the orders, the strategy randomly omits anywhere between 1-4 of the legs. Has anyone experienced a similar issue? What could be the cause?

self.Log("Underlying: {} ......... {} {} {} {}"
.format(self.Securities[self.underlyingsymbol].Price,
self.otm_put_lower,self.otm_put,self.otm_call,self.otm_call_higher))
self.Buy(self.otm_put_lower, 1)
self.Sell(self.otm_put, 1)
self.Sell(self.otm_call, 1)
self.Buy(self.otm_call_higher, 1)

2015-08-28 09:32:00 : Underlying: 198.41 ......... SPY 150918P00192000 SPY 150918P00192500 SPY 150918C00204500 SPY 150918C00205000
2015-08-28 09:32:00 : Time: 8/28/2015 1:32:00 PM OrderID: 9 Symbol: SPY 150918C00204500 Status: Submitted
2015-08-28 09:32:00 : Time: 8/28/2015 1:32:00 PM OrderID: 9 Symbol: SPY 150918C00204500 Status: Filled Quantity: -1 FillPrice: 1.39 USD OrderFee: 1 USD

For example, on this date, instead of placing four orders (put buy/sell & call buy/sell), only one order is placed, with no error or anything regarding what happened to the other orders.