Skip to content

fix: perps flip position and suppress transient HL SDK sentry errors#8707

Merged
gambinish merged 2 commits intomainfrom
feat/perps/controller-sync-may-5
May 5, 2026
Merged

fix: perps flip position and suppress transient HL SDK sentry errors#8707
gambinish merged 2 commits intomainfrom
feat/perps/controller-sync-may-5

Conversation

@gambinish
Copy link
Copy Markdown
Member

@gambinish gambinish commented May 5, 2026

Explanation

There was a regression that got introduced with flipping position. This change to the controller fixes it properly. Also adds a change to mitigate SDK sentry errors

References

Mobile PRs:

  1. fix: resolve ORDER_PRICE_REQUIRED error on perps position flip metamask-mobile#29691
  2. fix(perps): suppress transient HL SDK errors from Sentry metamask-mobile#29642

Checklist

  • I've updated the test suite for new or updated code as appropriate
  • I've updated documentation (JSDoc, Markdown, etc.) for new or updated code as appropriate
  • I've communicated my changes to consumers by updating changelogs for packages I've changed
  • I've introduced breaking changes in this PR and have prepared draft pull requests for clients and consumer packages to resolve them

Note

Medium Risk
Touches HyperLiquid order placement and subscription error handling; mistakes could block trades or hide real connectivity issues, but changes are localized and mainly adjust validation/logging behavior.

Overview
Fixes a flip-position regression by restructuring HyperLiquidProvider.placeOrder() to fetch a live price up front, validate market orders against that effectivePrice, and reuse it in the $10-minimum retry path when currentPrice is omitted.

Reduces Sentry noise in HyperLiquidSubscriptionService by classifying additional Hyperliquid/rews lifecycle errors as transient (e.g., reconnect/timeout/termination cases), logging them to debugLogger instead of Sentry, and reusing the same transient detector to decide when to retry assetCtxs subscription reconnects.

Reviewed by Cursor Bugbot for commit 938a7fe. Bugbot is set up for automated code reviews on this repo. Configure here.

@gambinish gambinish requested review from a team as code owners May 5, 2026 21:03
@gambinish gambinish enabled auto-merge May 5, 2026 21:14
@gambinish
Copy link
Copy Markdown
Member Author

@metamaskbot publish-preview

@gambinish gambinish added this pull request to the merge queue May 5, 2026
Merged via the queue into main with commit 94c1aa3 May 5, 2026
366 checks passed
@gambinish gambinish deleted the feat/perps/controller-sync-may-5 branch May 5, 2026 21:23
@github-actions
Copy link
Copy Markdown
Contributor

github-actions Bot commented May 5, 2026

Preview builds have been published. Learn how to use preview builds in other projects.

Expand for full list of packages and versions.
@metamask-previews/account-tree-controller@7.2.0-preview-938a7fe
@metamask-previews/accounts-controller@38.0.0-preview-938a7fe
@metamask-previews/address-book-controller@7.1.1-preview-938a7fe
@metamask-previews/ai-controllers@0.6.3-preview-938a7fe
@metamask-previews/analytics-controller@1.0.1-preview-938a7fe
@metamask-previews/analytics-data-regulation-controller@0.0.0-preview-938a7fe
@metamask-previews/announcement-controller@8.1.0-preview-938a7fe
@metamask-previews/app-metadata-controller@2.0.1-preview-938a7fe
@metamask-previews/approval-controller@9.0.1-preview-938a7fe
@metamask-previews/assets-controller@6.3.0-preview-938a7fe
@metamask-previews/assets-controllers@105.1.0-preview-938a7fe
@metamask-previews/authenticated-user-storage@1.0.0-preview-938a7fe
@metamask-previews/base-controller@9.1.0-preview-938a7fe
@metamask-previews/base-data-service@0.1.1-preview-938a7fe
@metamask-previews/bridge-controller@71.0.0-preview-938a7fe
@metamask-previews/bridge-status-controller@71.1.0-preview-938a7fe
@metamask-previews/build-utils@3.0.4-preview-938a7fe
@metamask-previews/chain-agnostic-permission@1.5.0-preview-938a7fe
@metamask-previews/chomp-api-service@3.0.0-preview-938a7fe
@metamask-previews/claims-controller@0.5.0-preview-938a7fe
@metamask-previews/client-controller@1.0.1-preview-938a7fe
@metamask-previews/compliance-controller@2.0.0-preview-938a7fe
@metamask-previews/composable-controller@12.0.1-preview-938a7fe
@metamask-previews/config-registry-controller@0.3.0-preview-938a7fe
@metamask-previews/connectivity-controller@0.2.0-preview-938a7fe
@metamask-previews/controller-utils@11.20.0-preview-938a7fe
@metamask-previews/core-backend@6.2.1-preview-938a7fe
@metamask-previews/delegation-controller@3.0.0-preview-938a7fe
@metamask-previews/earn-controller@12.1.0-preview-938a7fe
@metamask-previews/eip-5792-middleware@3.0.3-preview-938a7fe
@metamask-previews/eip-7702-internal-rpc-middleware@0.1.0-preview-938a7fe
@metamask-previews/eip1193-permission-middleware@2.0.0-preview-938a7fe
@metamask-previews/ens-controller@19.1.1-preview-938a7fe
@metamask-previews/eth-block-tracker@15.0.1-preview-938a7fe
@metamask-previews/eth-json-rpc-middleware@23.1.3-preview-938a7fe
@metamask-previews/eth-json-rpc-provider@6.0.1-preview-938a7fe
@metamask-previews/foundryup@1.0.1-preview-938a7fe
@metamask-previews/gas-fee-controller@26.1.1-preview-938a7fe
@metamask-previews/gator-permissions-controller@4.0.0-preview-938a7fe
@metamask-previews/geolocation-controller@0.1.2-preview-938a7fe
@metamask-previews/json-rpc-engine@10.3.0-preview-938a7fe
@metamask-previews/json-rpc-middleware-stream@8.0.8-preview-938a7fe
@metamask-previews/keyring-controller@25.4.0-preview-938a7fe
@metamask-previews/logging-controller@8.0.1-preview-938a7fe
@metamask-previews/message-manager@14.1.1-preview-938a7fe
@metamask-previews/messenger@1.2.0-preview-938a7fe
@metamask-previews/messenger-cli@0.2.0-preview-938a7fe
@metamask-previews/money-account-balance-service@0.2.0-preview-938a7fe
@metamask-previews/money-account-controller@0.2.0-preview-938a7fe
@metamask-previews/money-account-upgrade-controller@1.3.1-preview-938a7fe
@metamask-previews/multichain-account-service@8.0.1-preview-938a7fe
@metamask-previews/multichain-api-middleware@3.0.0-preview-938a7fe
@metamask-previews/multichain-network-controller@3.1.0-preview-938a7fe
@metamask-previews/multichain-transactions-controller@7.1.0-preview-938a7fe
@metamask-previews/name-controller@9.1.1-preview-938a7fe
@metamask-previews/network-controller@30.1.0-preview-938a7fe
@metamask-previews/network-enablement-controller@5.1.0-preview-938a7fe
@metamask-previews/notification-services-controller@23.1.0-preview-938a7fe
@metamask-previews/passkey-controller@2.0.0-preview-938a7fe
@metamask-previews/permission-controller@13.0.0-preview-938a7fe
@metamask-previews/permission-log-controller@5.1.0-preview-938a7fe
@metamask-previews/perps-controller@5.0.0-preview-938a7fe
@metamask-previews/phishing-controller@17.1.1-preview-938a7fe
@metamask-previews/polling-controller@16.0.4-preview-938a7fe
@metamask-previews/preferences-controller@23.1.0-preview-938a7fe
@metamask-previews/profile-metrics-controller@3.1.3-preview-938a7fe
@metamask-previews/profile-sync-controller@28.0.2-preview-938a7fe
@metamask-previews/ramps-controller@13.3.0-preview-938a7fe
@metamask-previews/rate-limit-controller@7.0.1-preview-938a7fe
@metamask-previews/react-data-query@0.2.0-preview-938a7fe
@metamask-previews/remote-feature-flag-controller@4.2.0-preview-938a7fe
@metamask-previews/sample-controllers@4.0.4-preview-938a7fe
@metamask-previews/seedless-onboarding-controller@9.1.0-preview-938a7fe
@metamask-previews/selected-network-controller@26.1.1-preview-938a7fe
@metamask-previews/shield-controller@5.1.1-preview-938a7fe
@metamask-previews/signature-controller@39.2.0-preview-938a7fe
@metamask-previews/snap-account-service@0.0.0-preview-938a7fe
@metamask-previews/social-controllers@2.2.0-preview-938a7fe
@metamask-previews/storage-service@1.0.1-preview-938a7fe
@metamask-previews/subscription-controller@6.1.2-preview-938a7fe
@metamask-previews/transaction-controller@65.1.0-preview-938a7fe
@metamask-previews/transaction-pay-controller@21.0.0-preview-938a7fe
@metamask-previews/user-operation-controller@41.2.0-preview-938a7fe

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants