Oracle and Sequencer Risks: Can You Close Your Perp?
Jump to sectionsShort answer
A perpetual position can remain exposed while you cannot change it. An oracle problem can make the price unusable; a sequencer or chain failure can prevent a transaction from entering; an execution problem can leave an accepted request unfinished. Identify which stage failed before relying on a stop, adding margin or sending another order. A live chart alone does not show that your position can close.
GMX exposes request and execution as separate states. That is useful when choosing a pool-based perp workflow you can inspect during a delay: a submitted transaction and a completed close have different consequences for the open position.
Is the price stale, the chain unavailable or the order waiting?
An unavailable close button is a symptom, not a diagnosis. The website may have lost its connection while the underlying venue still works. Alternatively, the page may be updating normally while its blockchain cannot accept your transaction. A third possibility is that your transaction entered the chain, but a separate service has not executed the trading request. The same spinning indicator can hide very different account states.
A price oracle supplies data used by a contract or trading system. A sequencer orders incoming transactions on certain layer-two networks. An execution keeper submits the transaction that completes a request on protocols that use that design. These services can fail separately. They can also recover at different times, so a single green status badge does not answer all three questions.
Start with the last confirmed action. If there is no submitted transaction, an interface or wallet error may be the immediate obstacle. If there is a transaction identifier, inspect whether it was included. If it created an order request, inspect that request’s execution or cancellation record. A receipt for creating an order is not necessarily a receipt for closing the position.
This distinction matters most when reducing risk. Pressing close again before identifying the first request can produce confusing pending instructions. Assuming an unexecuted margin deposit already protects the position is equally dangerous. The relevant evidence is the position’s accepted collateral or remaining size, not just a successful click or a locally displayed notification.
| Observation | What remains uncertain | Useful evidence |
|---|---|---|
| Chart changes; order cannot be submitted | Frontend, wallet, network or access failure | Transaction submission and chain status |
| Transaction included; position unchanged | Request may still await execution | Order ID and execution/cancellation event |
| Price displayed with an old timestamp | Whether the application accepts that update | Oracle timestamp and application validation |
| Status page says recovered | Whether your own order completed | Remaining size, collateral and open orders |
A moving BTC chart does not prove the contract has a usable price
A chart can use a different feed from the one that settles the trade. It may continue showing exchange transactions while the protocol’s accepted price has stopped updating. Conversely, a quiet displayed price can simply mean the market has barely moved. Freshness requires a timestamp and an understanding of the application’s rules; visual movement is an unreliable substitute.
The protocol decides how it uses an oracle feed. dYdX Chain uses its accepted oracle prices for collateral checks, liquidation and conditional-order triggers, with updates passing through validator infrastructure. For those actions, inspect the price the chain accepted rather than a separate exchange chart.
The economic asset matters too. A collateral feed and a perpetual’s underlying-asset feed answer different questions. If collateral loses value while the BTC reference remains stable, account health can change without a large BTC candle. Treating every incident as a stale Bitcoin price would miss the balance-sheet side of the problem.
If the accepted update is stamped 10:00 and markets move sharply at 10:04, check the contract’s permitted data age and validation rules. The decisive question is whether this action may proceed with that update; freshness thresholds differ by system and market.
Do not turn this into a race to trade an old price. A visible quote may be indicative, rejected at execution or replaced by a newer accepted update. The relevant reader decision is whether protective actions remain available and what price constraints apply, not whether a frozen number looks like a bargain.

GMX: an included request can still be an unfinished trade
A GMX request can be included onchain before a keeper executes it. During that interval the requested close has not removed the position. An invalid price, failed transaction or unmet acceptable-price condition can leave exposure in place.
| State | Trading consequence |
|---|---|
| Request created | The intended action is recorded; position can remain open. |
| Execution succeeds | Quantity and collateral reflect the completed action. |
| Request fails or stays pending | The requested reduction has not necessarily happened. |
| Cancellation succeeds | The canceled request no longer supplies the intended protection. |
GMX describes attempts to execute eligible protective orders before liquidation, but concurrent keepers do not establish a guaranteed onchain ordering. Use the position quantity and request outcome to determine what actually survived.
Price validity and request timing
A freshness threshold belongs to the configured feed and consumer. The time of a status-page announcement is not a contract price timestamp.
Acceptable-price constraints may prevent an unfavorable execution while leaving the position open; timing assumptions must not replace the actual request state.
Arbitrum’s December 2023 incident shows why recovery has stages
The Arbitrum status record for 15 December 2023 provides a useful historical example. Its published updates distinguish a reported sequencer stall, a return of sequencing with gas still recovering, and a later statement that gas prices had stabilized. The timeline below follows those announcement times. It is not a measurement of every block or every application’s downtime.
That distinction prevents a common mistake in outage reporting. A status page’s incident duration can include investigation and recovery after the core service resumes. Describing the whole incident window as a continuous inability to transact would overstate what the record establishes. Conversely, describing the service as fully usable at the first restart announcement ignores the remaining cost and execution conditions.
For a perp trader, these stages pose different questions. During a submission interruption, can a protective change reach the venue? After sequencing returns, can the necessary action be included at an acceptable cost, and is the protocol executing requests with current prices? After the incident is resolved, what actually happened to the account’s previous orders?
- Sequencer stall reported
Investigating the interruption to the sequencer feed.
- Sequencing restored
Gas conditions still recovering; restart is not the last recovery step.
- Gas prices stabilized
The incident was marked resolved. Individual orders still need their own outcome.
Announcement timestamps from the official status record, not measured block-level downtime or evidence of an individual trader’s losses.
Does a sequencer restart automatically give you a grace period?
No general grace period applies to every perp application. Chainlink’s sequencer-feed example checks network status and demonstrates a delay after recovery before using the price feed. Its one-hour interval is an example implementation choice, not a promise that every protocol on a supported chain blocks liquidations for an hour.
GMX’s known-issues documentation is particularly important here. It says that its contracts do not validate whether an L2 sequencer is active; oracle keepers are expected to stop signing when the chain stops and use recent block prices after it resumes. The same documentation identifies the possibility that downtime prevents collateral additions. It would therefore be incorrect to replace GMX’s actual design with the protection shown in an unrelated sample integration.
A grace period, where implemented, must also be read by action. A system may restrict one operation while leaving others available. “The oracle is paused” does not, on its own, tell you whether withdrawals, order cancellation, margin changes or liquidation are paused. The contract’s behavior is more informative than a general statement that it uses a reputable data provider.
For a position already near its maintenance requirement, the practical issue is access before adverse prices are acted on. A pause can delay a decision without repairing the account’s economic loss. When the price becomes usable again, the same collateral may support less exposure. Extra time and extra solvency are different protections.
dYdX Chain also halted during its April 2024 software upgrade and restarted with v4.0.2. An independent chain can therefore interrupt trading access too, although its recovery and liquidation process differs from an Ethereum rollup.
A stop threshold cannot restore prices skipped during downtime
Suppose a hypothetical 0.4 BTC long has a stop threshold of $49,000. If protective execution is unavailable and the first usable sale after recovery is $47,500, that gap adds $600 of adverse movement before fees. Whether liquidation occurs first depends on the position’s margin.
Now add a minimum acceptable selling price of $48,800. The $47,500 opportunity fails that condition. The instruction may remain unfinished or receive another protocol-defined outcome. It has not magically filled at $48,800. A price constraint prevents an unacceptable execution; it cannot require the market to provide an acceptable buyer.
Without that constraint, a supported market-style close might execute nearer the available price, subject to the venue’s protections and available liquidity. That trades price certainty for a greater willingness to complete. Neither choice retroactively eliminates the gap. This is why a stop should be understood as an instruction processed by a system, rather than money reserved at the trigger price.
Do not add the $600 example to an account loss without checking the reference point. It is the difference between a hypothetical sale at $49,000 and one at $47,500 for the same quantity. Entry-to-exit P&L already includes that difference if it uses the actual exit. Adding it again would count the gap twice.
A hedge on another venue has its own complication: it changes exposure elsewhere but does not close the original contract. When access returns, both positions may still exist. The correct reconciliation uses the size and direction of each actual position, including any fills that occurred while the first interface was unavailable.
($49,000 − $47,500) × 0.4 BTC = $600
Constructed long-position example. The $600 is a comparison against the stop threshold, not a separate charge and not total trade P&L.After a restart, reconcile the account before changing it again
Use a clean starting view of the account. Confirm the chain and market, then read the remaining position and collateral from the venue’s accepted state. A browser tab left open through an incident may show cached information. A fresh display is helpful, but a changed screen is still weaker evidence than the recorded execution outcome.
Next inspect the unfinished instruction itself. A close request, a stop and a collateral addition may have different states. If a close already executed, another instruction is unnecessary; if only collateral arrived, the position remains. If a conditional order is still live, it may affect the account later. These are distinct facts that a single balance number can obscure.
Compare timestamps in one timezone. Incident updates, wallet receipts and order histories may display local time or UTC. A supposed “execution before submission” can be a display mismatch. Keep the original event identifiers rather than trying to reconstruct the sequence from a cropped chart alone.
A replacement frontend helps when the website fails but the underlying system still works. It cannot restart a stalled sequencer. Arbitrum’s delayed-inbox mechanism offers eventual forced inclusion under specific conditions; its timing and the application’s execution rules make it unsuitable as an immediate emergency close.
Finally, separate account recovery from a compensation claim. Save the order outcomes and relevant status notices if a dispute needs investigation. Do not assume a protocol’s trading fees, insurance fund or general security language creates coverage for outage losses. Any reimbursement would need its own applicable terms or incident-specific decision.
What should influence your choice before opening the position?
For a strategy requiring prompt closes, identify which price feed, chain and execution service must all work. Two frontends using the same chain are not two independent exit routes. A status page should cover the execution dependency you actually use.
Read incident histories for the failure and recovery behavior they establish. An undocumented venue has unknown outage behavior, not a demonstrated clean record. Keep that distinction when comparing venues rather than counting provider logos.
Oracle outages, stops and account access: further questions
Can a stablecoin oracle problem affect a BTC perpetual?
Yes, if that stablecoin is part of the accepted collateral or settlement design. A change in its recognized value can alter account health independently of the BTC price. The effect depends on the market’s actual collateral rules; a stablecoin name does not establish a constant one-dollar valuation in every system.
Will switching RPC providers solve a sequencer outage?
It can help when the connection to one RPC service is the problem. It cannot, by itself, restore a stopped sequencing or execution service. An RPC is a way to read or submit to a network; changing that connection does not replace the network’s transaction-ordering mechanism.
Can I cancel a stop while its trigger price is unavailable?
That depends on which actions the protocol allows and whether the cancellation can be included. A price problem does not necessarily block cancellation, but a broader chain interruption can prevent the request from reaching the system. Treat the stop as active until the venue confirms the cancellation outcome.
Does an oracle audit guarantee that prices are always available?
No. An audit examines a defined scope of code or design. Live data delivery also depends on external services, updates and operating conditions. Read an audit for the specific protections it examined; do not convert it into an uptime or compensation promise.
Is an exchange’s last traded price the same as its accepted oracle price?
Not necessarily. A last trade describes one execution. An oracle can aggregate several sources and update through a separate process. A comparison is meaningful only when the asset, timestamp and price purpose match. A difference between the numbers is not sufficient evidence of manipulation.
Can I use a status-page resolution as proof that my close order filled?
No. Resolution describes the reported service incident. Your trade needs its own execution record and remaining-position check. Keep both records if timing matters: the service may have recovered before a queued request completed, or your order may have been canceled instead.
Sources and research 9 source references
Official GMX, Chainlink, Arbitrum and dYdX documentation reviewed on 8 October 2026. The December 2023 timeline uses published status-update timestamps, not a block-by-block reconstruction; no individual account outcome is inferred. Price-gap calculations are constructed examples. No order, deposit, liquidation or outage-recovery transaction was executed for this article. Sample grace periods are kept separate from the protections documented by an actual application.
Evidence by section
- A moving BTC chart does not prove the contract has a usable price
- GMX: an included request can still be an unfinished trade
- Arbitrum’s December 2023 incident shows why recovery has stages
- Does a sequencer restart automatically give you a grace period?
- After a restart, reconcile the account before changing it again
Source register and access
- Chainlink: Data feeds and onchain price deliveryLink checked · Reviewed 8 Oct 2026 · Product rule · next editorial check due 2027-01-06
- dYdX: Oracle updates, collateral checks, liquidations and triggersLink checked · Reviewed 8 Oct 2026 · Product rule · next editorial check due 2027-01-06
- GMX: Two-phase order requests and execution outcomesLink checked · Reviewed 8 Oct 2026 · Product rule · next editorial check due 2027-01-06
- GMX: Best-effort protective orders and auto-deleveragingLink checked · Reviewed 8 Oct 2026 · Product rule · next editorial check due 2027-01-06
- Arbitrum Status: 15 December 2023 sequencer and gas recovery updatesLink checked · Reviewed 8 Oct 2026 · Product rule · next editorial check due 2027-01-06
- Chainlink: Sequencer uptime feeds and application-specific grace periodsLink checked · Reviewed 8 Oct 2026 · Product rule · next editorial check due 2027-01-06
- GMX: Oracle keepers, sequencer downtime and liquidity limitationsLink checked · Reviewed 8 Oct 2026 · Product rule · next editorial check due 2027-01-06
- dYdX Foundation: April 2024 upgrade and chain restart with v4.0.2Link checked · Reviewed 8 Oct 2026 · Product rule · next editorial check due 2027-01-06
- Arbitrum: Sequencing and delayed-inbox inclusionLink checked · Reviewed 8 Oct 2026 · Product rule · next editorial check due 2027-01-06