There are some cases where a miner will drop a transaction and not emit any event. This is difficult for the user to understand what's happened. The long term solution is to allow these transactions to be included in a block (as failed transactions). This is better any way, because it allows the miner to take the fee for the work it did. This would be a consensus change, so in the meantime, we can at least make sure that an event is emitted.
There are some cases where a miner will drop a transaction and not emit any event. This is difficult for the user to understand what's happened. The long term solution is to allow these transactions to be included in a block (as failed transactions). This is better any way, because it allows the miner to take the fee for the work it did. This would be a consensus change, so in the meantime, we can at least make sure that an event is emitted.