Don't log errors for known app password issues in chat
This commit is contained in:
@@ -1,3 +1,4 @@
|
||||
import {XRPCError} from '@atproto/xrpc'
|
||||
import {t} from '@lingui/macro'
|
||||
|
||||
export function cleanError(str: any): string {
|
||||
@@ -43,3 +44,11 @@ export function isNetworkError(e: unknown) {
|
||||
}
|
||||
return false
|
||||
}
|
||||
|
||||
export function isErrorMaybeAppPasswordPermissions(e: unknown) {
|
||||
if (e instanceof XRPCError && e.error === 'TokenInvalid') {
|
||||
return true
|
||||
}
|
||||
const str = String(e)
|
||||
return str.includes('Bad token scope') || str.includes('Bad token method')
|
||||
}
|
||||
|
||||
@@ -11,7 +11,10 @@ import {nanoid} from 'nanoid/non-secure'
|
||||
|
||||
import {networkRetry} from '#/lib/async/retry'
|
||||
import {DM_SERVICE_HEADERS} from '#/lib/constants'
|
||||
import {isNetworkError} from '#/lib/strings/errors'
|
||||
import {
|
||||
isErrorMaybeAppPasswordPermissions,
|
||||
isNetworkError,
|
||||
} from '#/lib/strings/errors'
|
||||
import {Logger} from '#/logger'
|
||||
import {isNative} from '#/platform/detection'
|
||||
import {
|
||||
@@ -485,7 +488,7 @@ export class Convo {
|
||||
this.dispatch({event: ConvoDispatchEvent.Ready})
|
||||
}
|
||||
} catch (e: any) {
|
||||
if (!isNetworkError(e)) {
|
||||
if (!isNetworkError(e) && !isErrorMaybeAppPasswordPermissions(e)) {
|
||||
logger.error('setup failed', {
|
||||
safeMessage: e.message,
|
||||
})
|
||||
@@ -594,7 +597,7 @@ export class Convo {
|
||||
this.sender = sender || this.sender
|
||||
this.recipients = recipients || this.recipients
|
||||
} catch (e: any) {
|
||||
if (!isNetworkError(e)) {
|
||||
if (!isNetworkError(e) && !isErrorMaybeAppPasswordPermissions(e)) {
|
||||
logger.error(`failed to refresh convo`, {
|
||||
safeMessage: e.message,
|
||||
})
|
||||
@@ -662,7 +665,7 @@ export class Convo {
|
||||
}
|
||||
}
|
||||
} catch (e: any) {
|
||||
if (!isNetworkError(e)) {
|
||||
if (!isNetworkError(e) && !isErrorMaybeAppPasswordPermissions(e)) {
|
||||
logger.error('failed to fetch message history', {
|
||||
safeMessage: e.message,
|
||||
})
|
||||
@@ -938,7 +941,7 @@ export class Convo {
|
||||
} else {
|
||||
this.pendingMessageFailure = 'unrecoverable'
|
||||
|
||||
if (!isNetworkError(e)) {
|
||||
if (!isNetworkError(e) && !isErrorMaybeAppPasswordPermissions(e)) {
|
||||
logger.error(`handleSendMessageFailure received unknown error`, {
|
||||
safeMessage: e.message,
|
||||
})
|
||||
@@ -1014,7 +1017,7 @@ export class Convo {
|
||||
)
|
||||
})
|
||||
} catch (e: any) {
|
||||
if (!isNetworkError(e)) {
|
||||
if (!isNetworkError(e) && !isErrorMaybeAppPasswordPermissions(e)) {
|
||||
logger.error(`failed to delete message`, {
|
||||
safeMessage: e.message,
|
||||
})
|
||||
|
||||
@@ -4,7 +4,10 @@ import {nanoid} from 'nanoid/non-secure'
|
||||
|
||||
import {networkRetry} from '#/lib/async/retry'
|
||||
import {DM_SERVICE_HEADERS} from '#/lib/constants'
|
||||
import {isNetworkError} from '#/lib/strings/errors'
|
||||
import {
|
||||
isErrorMaybeAppPasswordPermissions,
|
||||
isNetworkError,
|
||||
} from '#/lib/strings/errors'
|
||||
import {Logger} from '#/logger'
|
||||
import {
|
||||
BACKGROUND_POLL_INTERVAL,
|
||||
@@ -260,7 +263,7 @@ export class MessagesEventBus {
|
||||
|
||||
this.dispatch({event: MessagesEventBusDispatchEvent.Ready})
|
||||
} catch (e: any) {
|
||||
if (!isNetworkError(e)) {
|
||||
if (!isNetworkError(e) && !isErrorMaybeAppPasswordPermissions(e)) {
|
||||
logger.error(`init failed`, {
|
||||
safeMessage: e.message,
|
||||
})
|
||||
@@ -375,7 +378,7 @@ export class MessagesEventBus {
|
||||
this.emitter.emit('event', {type: 'logs', logs: batch})
|
||||
}
|
||||
} catch (e: any) {
|
||||
if (!isNetworkError(e)) {
|
||||
if (!isNetworkError(e) && !isErrorMaybeAppPasswordPermissions(e)) {
|
||||
logger.error(`poll events failed`, {
|
||||
safeMessage: e.message,
|
||||
})
|
||||
|
||||
Reference in New Issue
Block a user