About this guide: I'm Lawrence, the writer behind supa.is. Between February and May 2026 I've published 150+ articles on supa.is across crypto and brokerage tooling โ including 40+ Hyperliquid-specific guides (recent examples: Hyperliquid TWAP Order: Trigger & Max/Min Price, Hyperliquid Order Types Explained, Hyperliquid Order Not Filling? Slippage Fix). The most-repeated reader question across that Hyperliquid archive is exactly "my TWAP order stopped triggering after the price moved," which is why I'm publishing this standardized guide instead of answering one-off.
Referral terms: The 4% fee discount applies to the first $25M of volume per account and excludes Vaults and sub-accounts.
You placed a Hyperliquid TWAP order, watched the price cross your trigger level, and the order justโฆ sat there. No fills. No status change. The order book moved right through the price you set, and your scheduled execution never kicked off.
That is the single most common failure mode I see reported on TWAP orders, and it is almost never a bug. It is a mismatch between the price you think is "the price" and the price Hyperliquid actually uses to decide whether your order should start executing.
This guide walks through the exact mechanism, the three places to check when your TWAP order appears stuck, and the concrete fix for each cause. Everything here is grounded in the official Hyperliquid order-types documentation and the platform's public announcement channel.
What "triggering" actually means on a TWAP order
A TWAP (time-weighted average price) order on Hyperliquid is not a single resting limit order. It is a scheduled execution plan. You define a total size, a time window, and a trigger condition. The engine then slices that size into smaller child orders and releases them over the window.
The trigger condition is the part that confuses most people.
In the Hyperliquid order-types documentation, TWAP orders can carry a trigger price. When the market's reference price crosses that trigger, the engine begins releasing child orders. If the trigger is never crossed, the order remains in a waiting state and no child orders are placed.
The critical detail: the reference price is not the last traded price you see on the chart. It is the mark price.
Mark price is the index-based reference that Hyperliquid uses for liquidation, funding, and order-trigger evaluation. It is smoothed and derived from the broader index, not from a single trade on the Hyperliquid order book. This means the mark price can lag the last trade price, especially during fast moves, and it can sit on the other side of your trigger even when the chart candle looks like it crossed.
That single fact explains the majority of "my TWAP order is not triggering" reports.
The three checks, in order
When your TWAP order appears stuck, run these three checks in sequence. Most people skip straight to "cancel and re-place," which is fine as a last resort but wastes the information you can get from the order status itself.
Check 1: Order status in the open orders panel
Go to your open orders list on Hyperliquid. Find the TWAP order. Look at its status field.
The status will tell you one of three things:
- Waiting / pending trigger: The order is live but the trigger condition has not been met. The engine is watching the mark price. No child orders have been placed yet.
- Executing / partially filled: The trigger has been crossed, child orders are being released, and some have filled. The order is working. If you think it is "not triggering," it is actually triggering but filling slowly because the child order size is small relative to the book depth.
- Cancelled / expired: The order was cancelled, either by you, by the engine (if the time window lapsed), or by a margin event.
If the status says "executing" but you see no fills, the child orders are resting on the book and not getting matched. That is a slippage and depth problem, not a trigger problem. The Hyperliquid Order Not Filling? Slippage Fix guide covers that path in detail.
Check 2: Mark price vs. your trigger price
This is the check that resolves most "stuck TWAP" reports.
Open the mark price for the asset. On the Hyperliquid interface, the mark price is displayed alongside the last price, usually in a smaller or secondary font. Compare it to the trigger price you set on the TWAP order.
The question to ask is: has the mark price crossed the trigger, or has only the last trade price crossed it?
If the last trade is above your buy trigger but the mark price is still below it, the order will not trigger. The engine is not looking at the last trade. It is looking at the mark price.
This divergence is most common in two situations:
- Fast spike and reversion: A single large trade pushes the last price past your trigger, but the mark price (being smoothed) has not followed. The spike reverts, the mark price never crosses, and your order never triggers.
- Low-liquidity hours: During thin trading periods, the last trade can be stale or off from the index. The mark price tracks the index, not the stale trade, so it can sit well away from the last price you see on the chart.
- Adjust the trigger price to a level the mark price is realistically likely to cross. If you are setting a buy trigger, look at where the mark price has been ranging, not where a single spike took the last price.
- Remove the trigger entirely and let the TWAP order execute immediately over its time window. If your goal is to get filled over the next N hours and you do not need a price condition, a triggerless TWAP will start releasing child orders right away.
Check 3: Time window and remaining size
A TWAP order has a time window. If the window has elapsed and the trigger was never crossed, the order expires. The engine does not keep watching the mark price indefinitely.
Check the remaining time on the order. If the window is nearly closed, even if the mark price crosses your trigger in the next few minutes, the engine may not have time to release and fill child orders before expiry.
Also check the remaining size. If you have already partially executed and the remaining size is very small, the child orders will be tiny. Tiny child orders on a thin book can rest unfilled for a long time, giving the impression that the order "stopped working" when it is actually just slow.
Like what you're reading? Try it yourself โ this link supports ChartedTrader at no cost to you.
Join Hyperliquid and get a 4% fee discount on your first $25M of volume โWhy the mark price matters more than the last price
This is worth stating plainly because it is the root cause of the confusion.
Hyperliquid uses the mark price for trigger evaluation because the mark price is resistant to manipulation. A single large trade on the order book can push the last price anywhere, but it cannot move the mark price without moving the underlying index. Using the mark price for triggers means a TWAP order will not be triggered by a one-trade spike that reverts in seconds.
The tradeoff is that the mark price is slower. In a genuine sustained move, the mark price will cross your trigger, but it will cross it later than the last price did. If you set your trigger at the level where the last price crossed and the move was sharp, the mark price may cross a few minutes later, or it may not cross at all if the move reverts.
This is not a bug. It is a design choice that protects you from being filled on a wick. But it means your mental model of "the price crossed my line" needs to be updated to "the mark price crossed my line."
If you are new to how mark price interacts with order execution on Hyperliquid, the Hyperliquid Order Types Explained guide covers the full order-type taxonomy and where trigger logic fits in.
The fix, step by step
Here is the concrete sequence to run when your TWAP order is not triggering. This is a diagnostic sequence, not a trading recommendation.
- Open the order status. Confirm the order is still live and in a waiting state. If it is already expired or cancelled, you need to place a new order. The diagnostic below applies to live, waiting orders.
- Read the mark price. Do not look at the last trade price. Find the mark price for the asset. Compare it to your trigger price.
- Determine the gap. If the mark price is on the wrong side of your trigger, the order will not fire. Measure how far the mark price is from your trigger. If it is within a few bps, a sustained move may cross it. If it is far, the trigger is unrealistic for current conditions.
- Decide: adjust or remove. If you need the price condition, adjust the trigger to a level the mark price can realistically reach. If you do not need the price condition and just want scheduled execution, cancel the triggered order and place a triggerless TWAP for the same size and window.
- Re-check after placement. Wait a few minutes. Confirm the new order status. If it is a triggerless TWAP, it should show as executing immediately. If it is a triggered TWAP with an adjusted trigger, confirm the mark price is moving in the direction that will cross the new trigger.
- Monitor the fill rate. Once the order starts executing, watch the fill rate. If child orders are resting unfilled, that is a depth problem. Reduce the child order size or widen the acceptable slippage. The Hyperliquid Slippage Math: Depth, Spread, Fill guide has the math for how much size you can push into a given book depth.
Common mistakes that make TWAP orders look broken
A few patterns come up repeatedly in reader questions, and none of them are platform bugs.
Setting the trigger at the last trade price during a spike. You see a candle wick through your level, set the trigger there, and wait. The mark price never reaches that level because the wick was a single trade. The order sits. The fix is to set triggers based on the mark price range, not on wick extremes. Using a very short time window with a tight trigger. If your window is 10 minutes and your trigger is 2 bps away from the mark price, the mark price may not cross in time. The order expires. Widen the window or move the trigger closer. Confusing "no fills yet" with "not triggering." A TWAP order that has triggered but is releasing small child orders into a thin book will show zero or near-zero fills for a while. The order is working. It is just slow. Check the status field. If it says executing, it is triggering. Not checking the order status at all. The single fastest diagnostic is the status field. It tells you whether the order is waiting, executing, or expired. Most "my TWAP is broken" reports are resolved by reading that one field.When to cancel and re-place
There are two situations where cancelling and re-placing is the right move rather than adjusting in place.
The first is when the time window is nearly elapsed. If you have 2 minutes left on a 30-minute window, adjusting the trigger is not worth it. Cancel and place a new order with a fresh window.
The second is when the original order was placed with the wrong asset, wrong size, or wrong side. In that case, the trigger logic is irrelevant. Cancel, fix the parameters, and re-place.
In both cases, the Hyperliquid TWAP Order: Trigger & Max/Min Price guide has the full parameter reference so you can set the new order correctly the first time.
What the announcement channel tells you
Hyperliquid publishes product changes and operational notes on its announcement page. If you are experiencing a TWAP trigger issue that does not match any of the patterns above, check the announcement channel before assuming it is a personal configuration problem. Occasionally, a change to how trigger evaluation works or a temporary mark-price feed issue will be posted there. Reading the announcement before troubleshooting saves time and prevents you from "fixing" a configuration that is actually fine.
The Hyperliquid Order Types Explained article also links to the official documentation, which is the authoritative source for how each order type behaves.
FAQ
Why did my Hyperliquid TWAP order not trigger even though the price crossed my level?
The engine uses the mark price, not the last trade price, to evaluate triggers. If the last price crossed your level on a single trade but the mark price did not, the order will not trigger. Check the mark price against your trigger level.
How do I know if my TWAP order is waiting or executing?
Open the order in your open orders panel and read the status field. "Waiting" means the trigger has not been crossed. "Executing" means child orders are being released. "Expired" means the time window lapsed.
Should I cancel and re-place my TWAP order if it is not triggering?
Only if the time window is nearly elapsed or the parameters are wrong. If the order is live and waiting, adjust the trigger price to a level the mark price can realistically reach, or remove the trigger for immediate scheduled execution.
Does the 4% Hyperliquid fee discount apply to TWAP orders?
Yes. The 4% fee discount applies to the first $25M of volume per account and covers all order types, including TWAP. It excludes Vaults and sub-accounts.
What is the difference between a triggered and a triggerless TWAP order on Hyperliquid?
A triggered TWAP order waits for the mark price to cross your trigger before releasing child orders. A triggerless TWAP order starts releasing child orders immediately over its time window. Use a trigger when you need a price condition; use triggerless when you just need scheduled execution.
Risk Warning
Risk Warning: Crypto trading involves substantial risk of loss. Never invest more than you can afford to lose. This is not financial advice.
---
If you are setting up your first TWAP order or reviewing your execution strategy, join Hyperliquid and get a 4% fee discount on your first $25M of volume. The discount applies to all order types and excludes Vaults and sub-accounts.
Continue with Hyperliquid
Browse the Hyperliquid guide hub for the complete user journey.