···2525 data = (await storage.load(ROOT_STATE_STORAGE_KEY)) || {}
2626 rootStore.hydrate(data)
2727 } catch (e: any) {
2828- rootStore.log.error('Failed to load state from storage', e.toString())
2828+ rootStore.log.error('Failed to load state from storage', e)
2929 }
30303131 rootStore.log.debug('Initial hydrate')
···3636 return rootStore.fetchStateUpdate()
3737 })
3838 .catch((e: any) => {
3939- rootStore.log.warn('Failed initial connect', e.toString())
3939+ rootStore.log.warn('Failed initial connect', e)
4040 })
4141 // @ts-ignore .on() is correct -prf
4242 api.sessionManager.on('session', () => {
+1-4
src/state/lib/api.ts
···126126 },
127127 } as AppBskyEmbedExternal.Main
128128 } catch (e: any) {
129129- store.log.warn(
130130- `Failed to fetch link meta for ${link.value}`,
131131- e.toString(),
132132- )
129129+ store.log.warn(`Failed to fetch link meta for ${link.value}`, e)
133130 }
134131 }
135132 }
···5454 if (aborted) return
5555 store.log.warn(
5656 `Failed to fetch service description for ${serviceUrl}`,
5757- err.toString(),
5757+ err,
5858 )
5959 setError(
6060 'Unable to contact your service. Please check your Internet connection.',
···100100 errMsg =
101101 'Invite code not accepted. Check that you input it correctly and try again.'
102102 }
103103- store.log.warn('Failed to create account', e.toString())
103103+ store.log.error('Failed to create account', e)
104104 setIsProcessing(false)
105105 setError(errMsg.replace(/^Error:/, ''))
106106 }
+4-4
src/view/com/login/Signin.tsx
···5353 if (aborted) return
5454 store.log.warn(
5555 `Failed to fetch service description for ${serviceUrl}`,
5656- err.toString(),
5656+ err,
5757 )
5858 setError(
5959 'Unable to contact your service. Please check your Internet connection.',
···171171 })
172172 } catch (e: any) {
173173 const errMsg = e.toString()
174174- store.log.warn('Failed to login', e.toString())
174174+ store.log.warn('Failed to login', e)
175175 setIsProcessing(false)
176176 if (errMsg.includes('Authentication Required')) {
177177 setError('Invalid username or password')
···307307 onEmailSent()
308308 } catch (e: any) {
309309 const errMsg = e.toString()
310310- store.log.warn('Failed to request password reset', e.toString())
310310+ store.log.warn('Failed to request password reset', e)
311311 setIsProcessing(false)
312312 if (isNetworkError(e)) {
313313 setError(
···419419 onPasswordSet()
420420 } catch (e: any) {
421421 const errMsg = e.toString()
422422- store.log.warn('Failed to set new password', e.toString())
422422+ store.log.warn('Failed to set new password', e)
423423 setIsProcessing(false)
424424 if (isNetworkError(e)) {
425425 setError(
+3-9
src/view/com/modals/CreateScene.tsx
···5757 })
5858 .catch(e =>
5959 // an error here is not critical
6060- store.log.error(
6161- 'Failed to update scene profile during creation',
6262- e.toString(),
6363- ),
6060+ store.log.error('Failed to update scene profile during creation', e),
6461 )
6562 // follow the scene
6663 await store.api.app.bsky.graph.follow
···7875 )
7976 .catch(e =>
8077 // an error here is not critical
8181- store.log.error(
8282- 'Failed to follow scene after creation',
8383- e.toString(),
8484- ),
7878+ store.log.error('Failed to follow scene after creation', e),
8579 )
8680 Toast.show('Scene created')
8781 store.shell.closeModal()
···9488 } else if (e instanceof AppBskyActorCreateScene.HandleNotAvailableError) {
9589 setError(`The handle "${handle}" is not available.`)
9690 } else {
9797- store.log.error('Failed to create scene', e.toString())
9191+ store.log.error('Failed to create scene', e)
9892 setError(
9993 'Failed to create the scene. Check your internet connection and try again.',
10094 )
+3-3
src/view/com/modals/InviteToScene.tsx
···8686 Toast.show('Invite sent')
8787 } catch (e: any) {
8888 setError('There was an issue with the invite. Please try again.')
8989- store.log.error('Failed to invite user to scene', e.toString())
8989+ store.log.error('Failed to invite user to scene', e)
9090 }
9191 }
9292 const onPressUndo = async (subjectDid: string, assertionUri: string) => {
···100100 setCreatedInvites(_omit(createdInvites, [subjectDid]))
101101 } catch (e: any) {
102102 setError('There was an issue with the invite. Please try again.')
103103- store.log.error('Failed to delete a scene invite', e.toString())
103103+ store.log.error('Failed to delete a scene invite', e)
104104 }
105105 }
106106···119119 Toast.show('Invite removed')
120120 } catch (e: any) {
121121 setError('There was an issue with the invite. Please try again.')
122122- store.log.error('Failed to delete an invite', e.toString())
122122+ store.log.error('Failed to delete an invite', e)
123123 }
124124 }
125125
+2-8
src/view/com/notifications/Feed.tsx
···3939 view
4040 .refresh()
4141 .catch(err =>
4242- view.rootStore.log.error(
4343- 'Failed to refresh notifications feed',
4444- err.toString(),
4545- ),
4242+ view.rootStore.log.error('Failed to refresh notifications feed', err),
4643 )
4744 }
4845 const onEndReached = () => {
4946 view
5047 .loadMore()
5148 .catch(err =>
5252- view.rootStore.log.error(
5353- 'Failed to load more notifications',
5454- err.toString(),
5555- ),
4949+ view.rootStore.log.error('Failed to load more notifications', err),
5650 )
5751 }
5852 let data