diff --git a/src/pages/_app.tsx b/src/pages/_app.tsx index 856ed81fe..00b11549a 100644 --- a/src/pages/_app.tsx +++ b/src/pages/_app.tsx @@ -472,7 +472,7 @@ export default function App({ Component, err }) { HTTPService.getInterceptors().response.use( (resp) => resp, (error) => { - logError(error); + logError(error, 'Network Error'); return Promise.reject(error); } ); diff --git a/src/pages/credentials/index.tsx b/src/pages/credentials/index.tsx index ec516a145..9b92b07ed 100644 --- a/src/pages/credentials/index.tsx +++ b/src/pages/credentials/index.tsx @@ -57,7 +57,7 @@ export default function Credentials() { keyAttributes.memLimit ); } catch (e) { - console.error('failed to deriveKey ', e.message); + logError(e, 'failed to derive key'); throw e; } try { @@ -78,7 +78,7 @@ export default function Credentials() { router.push(PAGES.GALLERY); } catch (e) { - logError(e); + logError(e, 'user entered a wrong password'); setFieldError('passphrase', constants.INCORRECT_PASSPHRASE); } } catch (e) { @@ -86,7 +86,6 @@ export default function Credentials() { 'passphrase', `${constants.UNKNOWN_ERROR} ${e.message}` ); - console.error('failed to verifyPassphrase ', e.message); } }; diff --git a/src/pages/recover/index.tsx b/src/pages/recover/index.tsx index 95a9f8fa6..898841b08 100644 --- a/src/pages/recover/index.tsx +++ b/src/pages/recover/index.tsx @@ -63,7 +63,7 @@ export default function Recover() { setData(LS_KEYS.SHOW_BACK_BUTTON, { value: false }); router.push(PAGES.CHANGE_PASSWORD); } catch (e) { - logError(e); + logError(e, 'password recovery failed'); setFieldError('passphrase', constants.INCORRECT_RECOVERY_KEY); } }; diff --git a/src/pages/two-factor/recover/index.tsx b/src/pages/two-factor/recover/index.tsx index a79f0182c..ee0219cdd 100644 --- a/src/pages/two-factor/recover/index.tsx +++ b/src/pages/two-factor/recover/index.tsx @@ -65,7 +65,7 @@ export default function Recover() { }); router.push(PAGES.CREDENTIALS); } catch (e) { - logError(e); + logError(e, 'two factor recovery failed'); setFieldError('passphrase', constants.INCORRECT_RECOVERY_KEY); } }; diff --git a/src/services/billingService.ts b/src/services/billingService.ts index 36144c0f6..630dc0f34 100644 --- a/src/services/billingService.ts +++ b/src/services/billingService.ts @@ -107,7 +107,7 @@ class billingService { const { subscription } = response.data; setData(LS_KEYS.SUBSCRIPTION, subscription); } catch (e) { - logError(e); + logError(e, 'subscription cancel failed'); throw e; } } @@ -125,7 +125,7 @@ class billingService { const { subscription } = response.data; setData(LS_KEYS.SUBSCRIPTION, subscription); } catch (e) { - logError(e); + logError(e, 'failed to activate subscription'); throw e; } } diff --git a/src/services/collectionService.ts b/src/services/collectionService.ts index a8cf01ed8..a07ff5669 100644 --- a/src/services/collectionService.ts +++ b/src/services/collectionService.ts @@ -114,10 +114,9 @@ const getCollections = async ( key ); } catch (e) { - logError( - e, - `decryption failed for collection with id=${collection.id}` - ); + logError(e, `decryption failed for collection`, { + collectionID: collection.id, + }); } return collectionWithSecrets; } diff --git a/src/services/exportService.ts b/src/services/exportService.ts index f22023a1f..6f0e69eea 100644 --- a/src/services/exportService.ts +++ b/src/services/exportService.ts @@ -227,7 +227,7 @@ class ExportService { } return { paused: false }; } catch (e) { - logError(e); + logError(e, 'export failed '); } } async addFilesQueuedRecord(folder: string, files: File[]) { diff --git a/src/services/upload/metadataService.ts b/src/services/upload/metadataService.ts index 3beeaed1e..5bfee0906 100644 --- a/src/services/upload/metadataService.ts +++ b/src/services/upload/metadataService.ts @@ -111,7 +111,7 @@ export async function parseMetadataJSON(receivedFile: globalThis.File) { } return { title, parsedMetaDataJSON } as ParsedMetaDataJSONWithTitle; } catch (e) { - logError(e); + logError(e, 'parseMetadataJSON failed'); // ignore } } diff --git a/src/services/upload/thumbnailService.ts b/src/services/upload/thumbnailService.ts index 2867657e4..ab81aa131 100644 --- a/src/services/upload/thumbnailService.ts +++ b/src/services/upload/thumbnailService.ts @@ -1,5 +1,5 @@ import { FILE_TYPE } from 'services/fileService'; -import { CustomError } from 'utils/common/errorUtil'; +import { CustomError, errorWithContext } from 'utils/common/errorUtil'; import { convertHEIC2JPEG } from 'utils/file'; import { logError } from 'utils/sentry'; import { BLACK_THUMBNAIL_BASE64 } from '../../../public/images/black-thumbnail-b64'; @@ -85,13 +85,11 @@ export async function generateImageThumbnail( clearTimeout(timeout); resolve(null); } catch (e) { - reject(e); - logError(e); - reject( - Error( - `${CustomError.THUMBNAIL_GENERATION_FAILED} err: ${e}` - ) + const err = errorWithContext( + e, + `${CustomError.THUMBNAIL_GENERATION_FAILED} err: ${e}` ); + reject(err); } }; timeout = setTimeout( @@ -142,7 +140,7 @@ export async function generateVideoThumbnail(file: globalThis.File) { const err = Error( `${CustomError.THUMBNAIL_GENERATION_FAILED} err: ${e}` ); - logError(err); + logError(e, CustomError.THUMBNAIL_GENERATION_FAILED); reject(err); } }); diff --git a/src/services/upload/uploadHttpClient.ts b/src/services/upload/uploadHttpClient.ts index e6adc8571..a3bc006e5 100644 --- a/src/services/upload/uploadHttpClient.ts +++ b/src/services/upload/uploadHttpClient.ts @@ -123,7 +123,7 @@ class UploadHttpClient { ); if (!resp?.headers?.etag) { const err = Error(CustomError.ETAG_MISSING); - logError(err); + logError(err, 'putFile in parts failed'); throw err; } return resp; diff --git a/src/utils/billingUtil.ts b/src/utils/billingUtil.ts index 4db14260c..555bd9016 100644 --- a/src/utils/billingUtil.ts +++ b/src/utils/billingUtil.ts @@ -230,7 +230,7 @@ function handleFailureReason( setDialogMessage: SetDialogMessage, setLoading: SetLoading ): void { - logError(Error(`subscription purchase failed with reason- ${reason}`)); + logError(Error(reason), 'subscription purchase failed'); switch (reason) { case FAILURE_REASON.CANCELED: setDialogMessage({ diff --git a/src/utils/sentry/index.ts b/src/utils/sentry/index.ts index 1ad94df16..6f1b80f57 100644 --- a/src/utils/sentry/index.ts +++ b/src/utils/sentry/index.ts @@ -4,7 +4,7 @@ import { getUserAnonymizedID } from 'utils/user'; export const logError = ( e: any, - msg?: string, + msg: string, info?: Record ) => { const err = errorWithContext(e, msg);