Skip to content

Conversation

@lwin-kyaw
Copy link
Contributor

@lwin-kyaw lwin-kyaw commented Jan 5, 2026

Explanation

This PR uses captureException function from the base-messenger to capture the claims errors and report to sentry (from the extension).

References

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

Add Sentry-backed error reporting and robust HTTP error handling to claims service

  • Wrap fetchClaimsConfigurations, getClaims, getClaimById, and generateMessageForClaimSignature in try/catch; on failures call messenger.captureException(createSentryError(...)) and rethrow user-facing errors.
  • Use new utils.getErrorFromResponse to normalize non-OK HTTP responses (JSON/text/unknown) and createSentryError to attach original causes; add comprehensive unit tests for both utilities.
  • Update service tests to inject captureException via mocked messenger, assert it’s called on failures, and verify error messages (including status codes); add specific tests for rejected fetch and 500 responses.
  • Extend test messenger to support captureException; update CHANGELOG with new behavior.

Written by Cursor Bugbot for commit cd6eae6. This will update automatically on new commits. Configure here.

@lwin-kyaw lwin-kyaw requested a review from a team as a code owner January 5, 2026 16:00
@lwin-kyaw lwin-kyaw requested a review from a team as a code owner January 5, 2026 16:03
@lwin-kyaw lwin-kyaw added area-shield Transaction Shield team-shield labels Jan 5, 2026
@lwin-kyaw
Copy link
Contributor Author

@metamaskbot publish-preview

@github-actions
Copy link
Contributor

github-actions bot commented Jan 5, 2026

Preview builds have been published. See these instructions for more information about preview builds.

Expand for full list of packages and versions.
{
  "@metamask-previews/account-tree-controller": "4.0.0-preview-e69ede40",
  "@metamask-previews/accounts-controller": "35.0.0-preview-e69ede40",
  "@metamask-previews/address-book-controller": "7.0.1-preview-e69ede40",
  "@metamask-previews/analytics-controller": "1.0.0-preview-e69ede40",
  "@metamask-previews/announcement-controller": "8.0.0-preview-e69ede40",
  "@metamask-previews/app-metadata-controller": "2.0.0-preview-e69ede40",
  "@metamask-previews/approval-controller": "8.0.0-preview-e69ede40",
  "@metamask-previews/assets-controllers": "94.1.0-preview-e69ede40",
  "@metamask-previews/base-controller": "9.0.0-preview-e69ede40",
  "@metamask-previews/bridge-controller": "64.2.0-preview-e69ede40",
  "@metamask-previews/bridge-status-controller": "64.2.0-preview-e69ede40",
  "@metamask-previews/build-utils": "3.0.4-preview-e69ede40",
  "@metamask-previews/chain-agnostic-permission": "1.3.0-preview-e69ede40",
  "@metamask-previews/claims-controller": "0.3.1-preview-e69ede40",
  "@metamask-previews/composable-controller": "12.0.0-preview-e69ede40",
  "@metamask-previews/controller-utils": "11.17.0-preview-e69ede40",
  "@metamask-previews/core-backend": "5.0.0-preview-e69ede40",
  "@metamask-previews/delegation-controller": "2.0.0-preview-e69ede40",
  "@metamask-previews/earn-controller": "11.0.0-preview-e69ede40",
  "@metamask-previews/eip-5792-middleware": "2.1.0-preview-e69ede40",
  "@metamask-previews/eip-7702-internal-rpc-middleware": "0.1.0-preview-e69ede40",
  "@metamask-previews/eip1193-permission-middleware": "1.0.3-preview-e69ede40",
  "@metamask-previews/ens-controller": "19.0.0-preview-e69ede40",
  "@metamask-previews/error-reporting-service": "3.0.1-preview-e69ede40",
  "@metamask-previews/eth-block-tracker": "15.0.0-preview-e69ede40",
  "@metamask-previews/eth-json-rpc-middleware": "22.0.1-preview-e69ede40",
  "@metamask-previews/eth-json-rpc-provider": "6.0.0-preview-e69ede40",
  "@metamask-previews/foundryup": "1.0.1-preview-e69ede40",
  "@metamask-previews/gas-fee-controller": "26.0.0-preview-e69ede40",
  "@metamask-previews/gator-permissions-controller": "0.8.0-preview-e69ede40",
  "@metamask-previews/json-rpc-engine": "10.2.0-preview-e69ede40",
  "@metamask-previews/json-rpc-middleware-stream": "8.0.8-preview-e69ede40",
  "@metamask-previews/keyring-controller": "25.0.0-preview-e69ede40",
  "@metamask-previews/logging-controller": "7.0.1-preview-e69ede40",
  "@metamask-previews/message-manager": "14.1.0-preview-e69ede40",
  "@metamask-previews/messenger": "0.3.0-preview-e69ede40",
  "@metamask-previews/multichain-account-service": "4.1.0-preview-e69ede40",
  "@metamask-previews/multichain-api-middleware": "1.2.5-preview-e69ede40",
  "@metamask-previews/multichain-network-controller": "3.0.0-preview-e69ede40",
  "@metamask-previews/multichain-transactions-controller": "7.0.0-preview-e69ede40",
  "@metamask-previews/name-controller": "9.0.0-preview-e69ede40",
  "@metamask-previews/network-controller": "27.1.0-preview-e69ede40",
  "@metamask-previews/network-enablement-controller": "4.0.0-preview-e69ede40",
  "@metamask-previews/notification-services-controller": "21.0.0-preview-e69ede40",
  "@metamask-previews/permission-controller": "12.1.1-preview-e69ede40",
  "@metamask-previews/permission-log-controller": "5.0.0-preview-e69ede40",
  "@metamask-previews/phishing-controller": "16.1.0-preview-e69ede40",
  "@metamask-previews/polling-controller": "16.0.0-preview-e69ede40",
  "@metamask-previews/preferences-controller": "22.0.0-preview-e69ede40",
  "@metamask-previews/profile-metrics-controller": "2.0.0-preview-e69ede40",
  "@metamask-previews/profile-sync-controller": "27.0.0-preview-e69ede40",
  "@metamask-previews/ramps-controller": "2.0.0-preview-e69ede40",
  "@metamask-previews/rate-limit-controller": "7.0.0-preview-e69ede40",
  "@metamask-previews/remote-feature-flag-controller": "4.0.0-preview-e69ede40",
  "@metamask-previews/sample-controllers": "4.0.0-preview-e69ede40",
  "@metamask-previews/seedless-onboarding-controller": "7.1.0-preview-e69ede40",
  "@metamask-previews/selected-network-controller": "26.0.0-preview-e69ede40",
  "@metamask-previews/shield-controller": "4.0.0-preview-e69ede40",
  "@metamask-previews/signature-controller": "38.0.0-preview-e69ede40",
  "@metamask-previews/storage-service": "0.0.1-preview-e69ede40",
  "@metamask-previews/subscription-controller": "5.4.0-preview-e69ede40",
  "@metamask-previews/token-search-discovery-controller": "4.0.0-preview-e69ede40",
  "@metamask-previews/transaction-controller": "62.7.0-preview-e69ede40",
  "@metamask-previews/transaction-pay-controller": "10.5.0-preview-e69ede40",
  "@metamask-previews/user-operation-controller": "41.0.0-preview-e69ede40"
}

@lwin-kyaw
Copy link
Contributor Author

@metamaskbot publish-preview

@github-actions
Copy link
Contributor

github-actions bot commented Jan 5, 2026

Preview builds have been published. See these instructions for more information about preview builds.

Expand for full list of packages and versions.
{
  "@metamask-previews/account-tree-controller": "4.0.0-preview-7bc2d97e",
  "@metamask-previews/accounts-controller": "35.0.0-preview-7bc2d97e",
  "@metamask-previews/address-book-controller": "7.0.1-preview-7bc2d97e",
  "@metamask-previews/analytics-controller": "1.0.0-preview-7bc2d97e",
  "@metamask-previews/announcement-controller": "8.0.0-preview-7bc2d97e",
  "@metamask-previews/app-metadata-controller": "2.0.0-preview-7bc2d97e",
  "@metamask-previews/approval-controller": "8.0.0-preview-7bc2d97e",
  "@metamask-previews/assets-controllers": "94.1.0-preview-7bc2d97e",
  "@metamask-previews/base-controller": "9.0.0-preview-7bc2d97e",
  "@metamask-previews/bridge-controller": "64.2.0-preview-7bc2d97e",
  "@metamask-previews/bridge-status-controller": "64.2.0-preview-7bc2d97e",
  "@metamask-previews/build-utils": "3.0.4-preview-7bc2d97e",
  "@metamask-previews/chain-agnostic-permission": "1.3.0-preview-7bc2d97e",
  "@metamask-previews/claims-controller": "0.3.1-preview-7bc2d97e",
  "@metamask-previews/composable-controller": "12.0.0-preview-7bc2d97e",
  "@metamask-previews/controller-utils": "11.17.0-preview-7bc2d97e",
  "@metamask-previews/core-backend": "5.0.0-preview-7bc2d97e",
  "@metamask-previews/delegation-controller": "2.0.0-preview-7bc2d97e",
  "@metamask-previews/earn-controller": "11.0.0-preview-7bc2d97e",
  "@metamask-previews/eip-5792-middleware": "2.1.0-preview-7bc2d97e",
  "@metamask-previews/eip-7702-internal-rpc-middleware": "0.1.0-preview-7bc2d97e",
  "@metamask-previews/eip1193-permission-middleware": "1.0.3-preview-7bc2d97e",
  "@metamask-previews/ens-controller": "19.0.0-preview-7bc2d97e",
  "@metamask-previews/error-reporting-service": "3.0.1-preview-7bc2d97e",
  "@metamask-previews/eth-block-tracker": "15.0.0-preview-7bc2d97e",
  "@metamask-previews/eth-json-rpc-middleware": "22.0.1-preview-7bc2d97e",
  "@metamask-previews/eth-json-rpc-provider": "6.0.0-preview-7bc2d97e",
  "@metamask-previews/foundryup": "1.0.1-preview-7bc2d97e",
  "@metamask-previews/gas-fee-controller": "26.0.0-preview-7bc2d97e",
  "@metamask-previews/gator-permissions-controller": "0.8.0-preview-7bc2d97e",
  "@metamask-previews/json-rpc-engine": "10.2.0-preview-7bc2d97e",
  "@metamask-previews/json-rpc-middleware-stream": "8.0.8-preview-7bc2d97e",
  "@metamask-previews/keyring-controller": "25.0.0-preview-7bc2d97e",
  "@metamask-previews/logging-controller": "7.0.1-preview-7bc2d97e",
  "@metamask-previews/message-manager": "14.1.0-preview-7bc2d97e",
  "@metamask-previews/messenger": "0.3.0-preview-7bc2d97e",
  "@metamask-previews/multichain-account-service": "4.1.0-preview-7bc2d97e",
  "@metamask-previews/multichain-api-middleware": "1.2.5-preview-7bc2d97e",
  "@metamask-previews/multichain-network-controller": "3.0.0-preview-7bc2d97e",
  "@metamask-previews/multichain-transactions-controller": "7.0.0-preview-7bc2d97e",
  "@metamask-previews/name-controller": "9.0.0-preview-7bc2d97e",
  "@metamask-previews/network-controller": "27.1.0-preview-7bc2d97e",
  "@metamask-previews/network-enablement-controller": "4.0.0-preview-7bc2d97e",
  "@metamask-previews/notification-services-controller": "21.0.0-preview-7bc2d97e",
  "@metamask-previews/permission-controller": "12.1.1-preview-7bc2d97e",
  "@metamask-previews/permission-log-controller": "5.0.0-preview-7bc2d97e",
  "@metamask-previews/phishing-controller": "16.1.0-preview-7bc2d97e",
  "@metamask-previews/polling-controller": "16.0.0-preview-7bc2d97e",
  "@metamask-previews/preferences-controller": "22.0.0-preview-7bc2d97e",
  "@metamask-previews/profile-metrics-controller": "2.0.0-preview-7bc2d97e",
  "@metamask-previews/profile-sync-controller": "27.0.0-preview-7bc2d97e",
  "@metamask-previews/ramps-controller": "2.0.0-preview-7bc2d97e",
  "@metamask-previews/rate-limit-controller": "7.0.0-preview-7bc2d97e",
  "@metamask-previews/remote-feature-flag-controller": "4.0.0-preview-7bc2d97e",
  "@metamask-previews/sample-controllers": "4.0.0-preview-7bc2d97e",
  "@metamask-previews/seedless-onboarding-controller": "7.1.0-preview-7bc2d97e",
  "@metamask-previews/selected-network-controller": "26.0.0-preview-7bc2d97e",
  "@metamask-previews/shield-controller": "4.0.0-preview-7bc2d97e",
  "@metamask-previews/signature-controller": "38.0.0-preview-7bc2d97e",
  "@metamask-previews/storage-service": "0.0.1-preview-7bc2d97e",
  "@metamask-previews/subscription-controller": "5.4.0-preview-7bc2d97e",
  "@metamask-previews/token-search-discovery-controller": "4.0.0-preview-7bc2d97e",
  "@metamask-previews/transaction-controller": "62.7.0-preview-7bc2d97e",
  "@metamask-previews/transaction-pay-controller": "10.5.0-preview-7bc2d97e",
  "@metamask-previews/user-operation-controller": "41.0.0-preview-7bc2d97e"
}

hieu-w
hieu-w previously approved these changes Jan 6, 2026
Copy link

@hieu-w hieu-w left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM

@lwin-kyaw
Copy link
Contributor Author

@metamaskbot publish-preview

@github-actions
Copy link
Contributor

github-actions bot commented Jan 6, 2026

Preview builds have been published. See these instructions for more information about preview builds.

Expand for full list of packages and versions.
{
  "@metamask-previews/account-tree-controller": "4.0.0-preview-cd6eae6b",
  "@metamask-previews/accounts-controller": "35.0.0-preview-cd6eae6b",
  "@metamask-previews/address-book-controller": "7.0.1-preview-cd6eae6b",
  "@metamask-previews/analytics-controller": "1.0.0-preview-cd6eae6b",
  "@metamask-previews/announcement-controller": "8.0.0-preview-cd6eae6b",
  "@metamask-previews/app-metadata-controller": "2.0.0-preview-cd6eae6b",
  "@metamask-previews/approval-controller": "8.0.0-preview-cd6eae6b",
  "@metamask-previews/assets-controllers": "94.1.0-preview-cd6eae6b",
  "@metamask-previews/base-controller": "9.0.0-preview-cd6eae6b",
  "@metamask-previews/bridge-controller": "64.2.0-preview-cd6eae6b",
  "@metamask-previews/bridge-status-controller": "64.2.0-preview-cd6eae6b",
  "@metamask-previews/build-utils": "3.0.4-preview-cd6eae6b",
  "@metamask-previews/chain-agnostic-permission": "1.3.0-preview-cd6eae6b",
  "@metamask-previews/claims-controller": "0.3.1-preview-cd6eae6b",
  "@metamask-previews/composable-controller": "12.0.0-preview-cd6eae6b",
  "@metamask-previews/controller-utils": "11.17.0-preview-cd6eae6b",
  "@metamask-previews/core-backend": "5.0.0-preview-cd6eae6b",
  "@metamask-previews/delegation-controller": "2.0.0-preview-cd6eae6b",
  "@metamask-previews/earn-controller": "11.0.0-preview-cd6eae6b",
  "@metamask-previews/eip-5792-middleware": "2.1.0-preview-cd6eae6b",
  "@metamask-previews/eip-7702-internal-rpc-middleware": "0.1.0-preview-cd6eae6b",
  "@metamask-previews/eip1193-permission-middleware": "1.0.3-preview-cd6eae6b",
  "@metamask-previews/ens-controller": "19.0.0-preview-cd6eae6b",
  "@metamask-previews/error-reporting-service": "3.0.1-preview-cd6eae6b",
  "@metamask-previews/eth-block-tracker": "15.0.0-preview-cd6eae6b",
  "@metamask-previews/eth-json-rpc-middleware": "22.0.1-preview-cd6eae6b",
  "@metamask-previews/eth-json-rpc-provider": "6.0.0-preview-cd6eae6b",
  "@metamask-previews/foundryup": "1.0.1-preview-cd6eae6b",
  "@metamask-previews/gas-fee-controller": "26.0.0-preview-cd6eae6b",
  "@metamask-previews/gator-permissions-controller": "0.8.0-preview-cd6eae6b",
  "@metamask-previews/json-rpc-engine": "10.2.0-preview-cd6eae6b",
  "@metamask-previews/json-rpc-middleware-stream": "8.0.8-preview-cd6eae6b",
  "@metamask-previews/keyring-controller": "25.0.0-preview-cd6eae6b",
  "@metamask-previews/logging-controller": "7.0.1-preview-cd6eae6b",
  "@metamask-previews/message-manager": "14.1.0-preview-cd6eae6b",
  "@metamask-previews/messenger": "0.3.0-preview-cd6eae6b",
  "@metamask-previews/multichain-account-service": "4.1.0-preview-cd6eae6b",
  "@metamask-previews/multichain-api-middleware": "1.2.5-preview-cd6eae6b",
  "@metamask-previews/multichain-network-controller": "3.0.0-preview-cd6eae6b",
  "@metamask-previews/multichain-transactions-controller": "7.0.0-preview-cd6eae6b",
  "@metamask-previews/name-controller": "9.0.0-preview-cd6eae6b",
  "@metamask-previews/network-controller": "27.1.0-preview-cd6eae6b",
  "@metamask-previews/network-enablement-controller": "4.0.0-preview-cd6eae6b",
  "@metamask-previews/notification-services-controller": "21.0.0-preview-cd6eae6b",
  "@metamask-previews/permission-controller": "12.1.1-preview-cd6eae6b",
  "@metamask-previews/permission-log-controller": "5.0.0-preview-cd6eae6b",
  "@metamask-previews/phishing-controller": "16.1.0-preview-cd6eae6b",
  "@metamask-previews/polling-controller": "16.0.0-preview-cd6eae6b",
  "@metamask-previews/preferences-controller": "22.0.0-preview-cd6eae6b",
  "@metamask-previews/profile-metrics-controller": "2.0.0-preview-cd6eae6b",
  "@metamask-previews/profile-sync-controller": "27.0.0-preview-cd6eae6b",
  "@metamask-previews/ramps-controller": "2.0.0-preview-cd6eae6b",
  "@metamask-previews/rate-limit-controller": "7.0.0-preview-cd6eae6b",
  "@metamask-previews/remote-feature-flag-controller": "4.0.0-preview-cd6eae6b",
  "@metamask-previews/sample-controllers": "4.0.0-preview-cd6eae6b",
  "@metamask-previews/seedless-onboarding-controller": "7.1.0-preview-cd6eae6b",
  "@metamask-previews/selected-network-controller": "26.0.0-preview-cd6eae6b",
  "@metamask-previews/shield-controller": "4.0.0-preview-cd6eae6b",
  "@metamask-previews/signature-controller": "38.0.0-preview-cd6eae6b",
  "@metamask-previews/storage-service": "0.0.1-preview-cd6eae6b",
  "@metamask-previews/subscription-controller": "5.4.0-preview-cd6eae6b",
  "@metamask-previews/token-search-discovery-controller": "4.0.0-preview-cd6eae6b",
  "@metamask-previews/transaction-controller": "62.7.0-preview-cd6eae6b",
  "@metamask-previews/transaction-pay-controller": "10.5.0-preview-cd6eae6b",
  "@metamask-previews/user-operation-controller": "41.0.0-preview-cd6eae6b"
}

@chaitanyapotti chaitanyapotti added this pull request to the merge queue Jan 6, 2026
Merged via the queue into main with commit 18a2ce0 Jan 6, 2026
286 checks passed
@chaitanyapotti chaitanyapotti deleted the feat/claims-sentry branch January 6, 2026 07:09
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

area-shield Transaction Shield team-shield

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants