about summary refs log tree commit diff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/lib/strings/errors.ts18
-rw-r--r--src/logger/index.ts10
-rw-r--r--src/view/com/util/UserAvatar.tsx3
3 files changed, 23 insertions, 8 deletions
diff --git a/src/lib/strings/errors.ts b/src/lib/strings/errors.ts
index 899d8ebce..7d00c5e7f 100644
--- a/src/lib/strings/errors.ts
+++ b/src/lib/strings/errors.ts
@@ -20,11 +20,19 @@ export function cleanError(str: any): string {
   return str
 }
 
+const NETWORK_ERRORS = [
+  'Abort',
+  'Network request failed',
+  'Failed to fetch',
+  'Load failed',
+]
+
 export function isNetworkError(e: unknown) {
   const str = String(e)
-  return (
-    str.includes('Abort') ||
-    str.includes('Network request failed') ||
-    str.includes('Failed to fetch')
-  )
+  for (const err of NETWORK_ERRORS) {
+    if (str.includes(err)) {
+      return true
+    }
+  }
+  return false
 }
diff --git a/src/logger/index.ts b/src/logger/index.ts
index d6d8d9fc1..98635c6a9 100644
--- a/src/logger/index.ts
+++ b/src/logger/index.ts
@@ -1,10 +1,11 @@
 import format from 'date-fns/format'
 import {nanoid} from 'nanoid/non-secure'
 
-import {Sentry} from '#/logger/sentry'
-import * as env from '#/env'
 import {DebugContext} from '#/logger/debugContext'
 import {add} from '#/logger/logDump'
+import {Sentry} from '#/logger/sentry'
+import {isNetworkError} from 'lib/strings/errors'
+import * as env from '#/env'
 
 export enum LogLevel {
   Debug = 'debug',
@@ -160,6 +161,11 @@ export const sentryTransport: Transport = (
       timestamp: timestamp / 1000, // Sentry expects seconds
     })
 
+    // We don't want to send any network errors to sentry
+    if (isNetworkError(message)) {
+      return
+    }
+
     /**
      * Send all higher levels with `captureMessage`, with appropriate severity
      * level
diff --git a/src/view/com/util/UserAvatar.tsx b/src/view/com/util/UserAvatar.tsx
index 76d9d1503..2b4376b69 100644
--- a/src/view/com/util/UserAvatar.tsx
+++ b/src/view/com/util/UserAvatar.tsx
@@ -327,7 +327,8 @@ let EditableUserAvatar = ({
 
       onSelectNewAvatar(croppedImage)
     } catch (e: any) {
-      if (!String(e).includes('Canceled')) {
+      // Don't log errors for cancelling selection to sentry on ios or android
+      if (!String(e).toLowerCase().includes('cancel')) {
         logger.error('Failed to crop banner', {error: e})
       }
     }