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).
Installation
Details
Usage
After installing, this skill will be available to your AI coding assistant.
Verify installation:
skills listSkill Instructions
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
- Check shorter strings first - Better performance for
includes()chains - Group platform checks - Avoid redundant
platformEnvevaluations - Add comments - Explain why the error is being filtered
- Preserve local logging - Filtered errors still get logged via
onErrorcallback - 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
More by OneKeyHQ
View allHelps fix ESLint errors and warnings in the OneKey codebase. Use when running yarn lint and encountering warnings, cleaning up code before committing, or fixing spellcheck, unused variable, or other ESLint warnings.
Guide for adding new blockchain chains to OneKey. Use when implementing new chain support, adding blockchain protocols, or understanding chain architecture. Triggers on chain, blockchain, protocol, network, coin, token, add chain, new chain.
Cross-platform development patterns for OneKey. Use when writing platform-specific code, handling platform differences, or understanding platform extensions. Triggers on platform, native, web, desktop, extension, mobile, ios, android, electron, react native.
Creates test version branches for testing app upgrade functionality. Use when preparing upgrade test builds, testing version migration, or when the user mentions test version, 9005.x.x version numbers, upgrade testing, or version upgrade QA. Automates branch creation, version bumping, and build number hardcoding for upgrade flow verification.
