W/ IB, there are a couple of ways that a short sale can fail. They generally fall into two categories -- one is regulation (no-short list in '08, alternative uptick rule that's still in effect, etc) and the other is IB lacking the borrow for the stock. I believe that in both cases, IB will accept the order but will hold it and not send it to the market until the restriction is lifted (or borrow is located, etc). In IB Trader Workstation, the order is marked as 'held' but last I checked, IB didn't expose this. In my algo, I attempt to detect it with some heuristics around sell short orders that are suspiciously unfilled for a long time.s
Additionally, depending on the specific stocks you're interested in, the cost of borrowing stock to short can be non-trivial. For some speculative stocks, it can be 20% / year or more; I believe that for some, it can be >100%. I don't believe this info is available through Quantopian, so be careful when backtesting your algo to that heavily relies on shorting.