ignoring-sentry-errors | Skill Performance & Reviews | TopRankSkills

TopRank Skills

Home / Skills / tools / ignoring-sentry-errors

ignoring-sentry-errors

maintained by OneKeyHQ

star 2.3k account_tree 477 verified_user MIT License
bolt View GitHub

name: ignoring-sentry-errors description: Filters specific errors from Sentry reporting in this OneKey monorepo. Use when needing to ignore/suppress/filter Sentry errors, add error exclusions, or stop certain errors from being reported. Handles platform-specific filtering (desktop/mobile/web/extension).

Ignoring Sentry Errors

Follow this workflow to add new error filters to Sentry configuration.

Key File

All error filtering logic is centralized in:

packages/shared/src/modules3rdParty/sentry/basicOptions.ts

Workflow

1) Analyze the error

Identify the error pattern:

  • Error type (e.g., Error, TypeError, AxiosError)
  • Error message/value (the text content)
  • Platform (desktop/mobile/web/extension or all)
  • Frequency (sporadic vs constant)
  • Impact (blocks users or just noise)

2) Choose filtering strategy

Option A: Filter by error type (recommended for known error classes)

Add to FILTERED_ERROR_TYPES Set:

const FILTERED_ERROR_TYPES = new Set([
  'AxiosError',
  'HTTPClientError',
  // Add your error type here
  'YourErrorType',
]);

Option B: Filter by exact message match

Add to FILTER_ERROR_VALUES array:

const FILTER_ERROR_VALUES = ['AbortError: AbortError', 'cancel timeout'];

Option C: Filter by partial message match (for dynamic messages)

Add to isFilterErrorAndSkipSentry function:

// Platform-specific filter (group with existing platform checks)
if (platformEnv.isDesktop && error.value) {
  if (error.value.includes('YOUR_ERROR_PATTERN')) {
    return true;
  }
}

// Cross-platform filter
if (error.value && error.value.includes('YOUR_ERROR_PATTERN')) {
  return true;
}

3) Implementation pattern

For platform-specific errors, group checks to minimize redundant conditions:

// Desktop-specific error filters (grouped)
if (platformEnv.isDesktop && error.value) {
  // Filter 1
  if (error.value.includes('Pattern1')) {
    return true;
  }
  // Filter 2 (check shorter string first for performance)
  if (
    error.value.includes('ShortPattern') &&
    error.value.includes('LongerPatternForSpecificity')
  ) {
    return true;
  }
}

4) Verify changes

yarn eslint packages/shared/src/modules3rdParty/sentry/basicOptions.ts --quiet

Platform Detection

Use platformEnv for platform-specific filtering:

import platformEnv from '@onekeyhq/shared/src/platformEnv';

platformEnv.isDesktop    // Electron desktop app
platformEnv.isNative     // React Native (iOS/Android)
platformEnv.isWeb        // Web browser
platformEnv.isExtension  // Browser extension
platformEnv.isWebEmbed   // Embedded web components

Best Practices

  1. Check shorter strings first - Better performance for includes() chains
  2. Group platform checks - Avoid redundant platformEnv evaluations
  3. Add comments - Explain why the error is being filtered
  4. Preserve local logging - Filtered errors still get logged via onError callback
  5. Be specific - Use multiple includes() for dynamic messages to avoid false positives

Example: Filtering Electron webview errors

// Filter Electron webview connection closed error (network interruption during webview loading)
// Check shorter string first for better performance
if (
  error.value.includes('ERR_CONNECTION_CLOSED') &&
  error.value.includes('GUEST_VIEW_MANAGER_CALL')
) {
  return true;
}

Related Files

  • Main Sentry config: apps/desktop/app/sentry.ts
  • Desktop renderer: packages/shared/src/modules3rdParty/sentry/index.desktop.ts
  • Web/Extension: packages/shared/src/modules3rdParty/sentry/index.ts
  • Native: packages/shared/src/modules3rdParty/sentry/index.native.ts

chat Comments (0)

chat_bubble_outline

No comments yet. Be the first to share your thoughts!

Skill Details

GitHub Stars 2.3k
GitHub Forks 477
Created Jan 2026
Last Updated 5个月前
tools tools monitoring

Related Skills

Build your own?

Join 12,000+ developers contributing to the Claude ecosystem.