On Binance Futures, TP/SL orders can be set up as limit orders and stop market orders. Both types of orders are triggered when the stop condition has been satisfied. But the filled price of  market orders fully depends on the market liquidity and depth because they represent a quick buy or sell action.
There are two types of trigger types for TP/SL orders: Mark Price and Last Price. The default trigger type is Mark Price, which means only if the Mark Price reaches the stop price the TP/SL order will be executed. The reason most TP/SL orders can’t be executed at a given price is due to the trigger type and the price users tracked being different.
The price protection mechanism can also affect TP/SL orders. When price protection is enabled, if the difference between the Last Price and the Mark Price of the contract exceeds the set threshold when the TP/SL orders reach the trigger price, the TP/SL orders will not be triggered.
The trading rules of maximum market order quantity are one of the reasons that can also cause the TP/SL orders to expire.
Market illiquidity can have a serious impact on TP/SL orders. Market orders may expire or be partially filled due to the Market Order Price Cap/Floor Ratio, which is prevalent in extremely illiquid market conditions. Once the Market Order Price Cap/Floor Ratio exceeds the threshold, any unfilled market orders will expire.