Skip to content

feat: show disk space-specific message in storage error toast#39746

Merged
gauthierpetetin merged 21 commits intomainfrom
file-error-no-space
Feb 6, 2026
Merged

feat: show disk space-specific message in storage error toast#39746
gauthierpetetin merged 21 commits intomainfrom
file-error-no-space

Conversation

@gauthierpetetin
Copy link
Contributor

@gauthierpetetin gauthierpetetin commented Feb 3, 2026

Description

This PR enhances the storage error toast to show a specific message when the user's device is out of disk space. Previously, all storage write errors showed a generic message. Now, when the error contains "FILE_ERROR_NO_SPACE", the toast displays a targeted message asking users to free up disk space urgently to avoid losing wallet data.

Open in GitHub Codespaces

Changelog

CHANGELOG entry: Added disk space-specific error message to storage error toast when device is out of space

Related issues

Fixes: N/A

Manual testing steps

  1. Simulate a general storage write failure (without "FILE_ERROR_NO_SPACE") by following manual testing steps indicateed in this PR: feat: add workarounds for database corruption scenarios #39010
  2. Verify the behavior is unchanged, i.e. storage error toast appears with the default message: "Back up your Secret Recovery Phrase and reinstall MetaMask if the problem continues."
  3. Simulate a storage write failure with "FILE_ERROR_NO_SPACE" error (THERE'S NO EASY WAY TO ACHIEVE THAT, OTHER MANUALLY UPDATING THE CODE)
  4. Verify the storage error toast appears with the message: "Your device is out of disk space. Back up your Secret Recovery Phrase and free up space urgently to avoid losing your wallet data. Reinstall MetaMask if the problem continues."

Screenshots/Recordings

Before

Screenshot 2026-02-03 at 17 17 40

After

Screenshot 2026-02-05 at 07 32 52

Pre-merge author checklist

Pre-merge reviewer checklist

  • I've manually tested the PR (e.g. pull and build branch, run the app, test code being changed).
  • I confirm that this PR addresses all acceptance criteria described in the ticket it closes and includes the necessary testing evidence such as recordings and or screenshots.

Note

Low Risk
Primarily UI/state plumbing and copy changes; behavior changes are limited to how storage write failures are categorized and displayed in the toast.

Overview
Improves the storage error toast by tracking a typed storage write failure instead of a boolean flag, enabling more specific UX.

PersistenceManager now classifies write failures (e.g., FILE_ERROR_NO_SPACE) and notifies the background/UI with a StorageWriteErrorType, which is stored in AppStateController and used by ToastMaster to render a disk-space warning message and suppress the SRP action button for no-space errors. Localization keys and state snapshot/tests are updated accordingly.

Written by Cursor Bugbot for commit 908b2ad. This will update automatically on new commits. Configure here.

When storage write operations fail with FILE_ERROR_NO_SPACE, display a
targeted message asking users to free up disk space urgently instead of
the generic storage error message.

Co-authored-by: Cursor <cursoragent@cursor.com>
@gauthierpetetin gauthierpetetin self-assigned this Feb 3, 2026
@gauthierpetetin gauthierpetetin added the team-extension-platform Extension Platform team label Feb 3, 2026
@github-actions
Copy link
Contributor

github-actions bot commented Feb 3, 2026

CLA Signature Action: All authors have signed the CLA. You may need to manually re-run the blocking PR check if it doesn't pass in a few minutes.

@metamaskbotv2
Copy link
Contributor

metamaskbotv2 bot commented Feb 3, 2026

Builds ready [98e49b7]
UI Startup Metrics (1390 ± 96 ms)
PlatformBuildTypePageMetricTest Title (ms)Persona (ms)Mean (ms)Min (ms)Max (ms)Std Dev (ms)P 75 (ms)P 95 (ms)
ChromeBrowserifyStandard Home0--------
1--------
2--------
3--------
4--------
5--------
6--------
7--------
8--------
9--------
10--------
11--------
12--------
13--------
14--------
15--------
16--------
17--------
18--------
uiStartup--1390119617969614351543
load--117897216079712361317
domContentLoaded--117196515959712301309
domInteractive--251587162276
firstPaint--1526533867200287
backgroundConnect--23521527714242261
firstReactRender--17104351925
initialActions--105112
loadScripts--95475113749610121096
setupStore--1162541320
numNetworkReqs--211585161571
19--------
BrowserifyPower User Home0--------
1--------
2--------
3--------
4--------
5--------
6--------
7--------
8--------
9--------
10--------
11--------
12--------
13--------
14--------
15--------
16--------
17--------
18--------
uiStartup--296017368872143839686241
load--12451058185616013411612
domContentLoaded--12251043185215713141601
domInteractive--40192593536112
firstPaint--223851658218264420
backgroundConnect--857290352989911062902
firstReactRender--25165262837
initialActions--104111
loadScripts--980816154314010511312
setupStore--1563661830
numNetworkReqs--1306029249151244
19--------
WebpackStandard Home0--------
1--------
2--------
3--------
4--------
5--------
6--------
7--------
8--------
9--------
10--------
11--------
12--------
13--------
14--------
15--------
16--------
17--------
18--------
uiStartup--86968011391119431098
load--7356051060107803969
domContentLoaded--7306011055106791963
domInteractive--261691172379
firstPaint--1056236854125187
backgroundConnect--37191673037126
firstReactRender--14102731622
initialActions--102112
loadScripts--7275991053105788961
setupStore--1162541223
numNetworkReqs--221581171570
19--------
WebpackPower User Home0--------
1--------
2--------
3--------
4--------
5--------
6--------
7--------
8--------
9--------
10--------
11--------
12--------
13--------
14--------
15--------
16--------
17--------
18--------
uiStartup--1278867208124814891631
load--71460812391157091013
domContentLoaded--7036031233115695999
domInteractive--37171933132114
firstPaint--15367538103170473
backgroundConnect--15612838647155310
firstReactRender--21172832326
initialActions--101011
loadScripts--7016011225114693997
setupStore--1141731316
numNetworkReqs--1515833056174274
19--------
FirefoxBrowserifyStandard Home0--------
1--------
2--------
3--------
4--------
5--------
6--------
7--------
8--------
9--------
10--------
11--------
12--------
13--------
14--------
15--------
16--------
17--------
18--------
uiStartup--17141369236719118022046
load--14231192212815715191681
domContentLoaded--14211192212115715141681
domInteractive--813617141113148
firstPaint--------
backgroundConnect--72292043984157
firstReactRender--1392221416
initialActions--103122
loadScripts--13831167209814814581619
setupStore--164276291343
numNetworkReqs--231286181879
19--------
BrowserifyPower User Home0--------
1--------
2--------
3--------
4--------
5--------
6--------
7--------
8--------
9--------
10--------
11--------
12--------
13--------
14--------
15--------
16--------
17--------
18--------
uiStartup--30392069848873533074065
load--15651211585449716272019
domContentLoaded--15651211585349716272019
domInteractive--15938488120210427
firstPaint--------
backgroundConnect--38811414383066241018
firstReactRender--19146762026
initialActions--102122
loadScripts--15241189581549115961970
setupStore--14512784201131697
numNetworkReqs--90392575197234
19--------
WebpackStandard Home0--------
1--------
2--------
3--------
4--------
5--------
6--------
7--------
8--------
9--------
10--------
11--------
12--------
13--------
14--------
15--------
16--------
17--------
18--------
uiStartup--16821432217415817711984
load--14321250179710514921631
domContentLoaded--14321250179610514921631
domInteractive--933024545130162
firstPaint--------
backgroundConnect--74262574894172
firstReactRender--14112631522
initialActions--102022
loadScripts--1392122817729614481600
setupStore--194322391364
numNetworkReqs--231283171873
19--------
WebpackPower User Home0--------
1--------
2--------
3--------
4--------
5--------
6--------
7--------
8--------
9--------
10--------
11--------
12--------
13--------
14--------
15--------
16--------
17--------
18--------
uiStartup--325221679979163030528636
load--182312718008127716555670
domContentLoaded--182212718008127716555670
domInteractive--13843577109153412
firstPaint--------
backgroundConnect--46111774017806111169
firstReactRender--21156572229
initialActions--102122
loadScripts--177712557975127116275627
setupStore--13217780159180549
numNetworkReqs--85412484591206
19--------
📊 Page Load Benchmark Results

Current Commit: 98e49b7 | Date: 2/3/2026

📄 Localhost MetaMask Test Dapp

Samples: 100

Summary

  • pageLoadTime-> current mean value: 992ms (±39ms) 🟢 | historical mean value: 1.03s ⬇️ (historical data)
  • domContentLoaded-> current mean value: 687ms (±37ms) 🟢 | historical mean value: 717ms ⬇️ (historical data)
  • firstContentfulPaint-> current mean value: 76ms (±11ms) 🟢 | historical mean value: 79ms ⬇️ (historical data)

📈 Detailed Results

Metric Mean Std Dev Min Max P95 P99
pageLoadTime 992ms 39ms 955ms 1.26s 1.04s 1.26s
domContentLoaded 687ms 37ms 660ms 946ms 727ms 946ms
firstPaint 76ms 11ms 64ms 168ms 80ms 168ms
firstContentfulPaint 76ms 11ms 64ms 168ms 80ms 168ms
largestContentfulPaint 0ms 0ms 0ms 0ms 0ms 0ms
Bundle size diffs [🚨 Warning! Bundle size has increased!]
  • background: 2.03 KiB (0.04%)
  • ui: 365 Bytes (0%)
  • common: 772 Bytes (0.01%)

For disk space errors, only show a warning message without the action
button since the primary action is to free up space, not backup SRP.

Co-authored-by: Cursor <cursoragent@cursor.com>
Add the missing storageWriteErrorType property to
ControllerStatePropertiesEnumerated to fix TypeScript errors.
This property was added to AppStateControllerState but was not
enumerated in the background state types, causing the
FlattenedBackgroundStateProxy type to become 'never'.

Co-authored-by: Cursor <cursoragent@cursor.com>
@metamaskbotv2
Copy link
Contributor

metamaskbotv2 bot commented Feb 3, 2026

Builds ready [9f2b5f0]
UI Startup Metrics (1400 ± 109 ms)
PlatformBuildTypePageMetricTest Title (ms)Persona (ms)Mean (ms)Min (ms)Max (ms)Std Dev (ms)P 75 (ms)P 95 (ms)
ChromeBrowserifyStandard Home0--------
1--------
2--------
3--------
4--------
5--------
6--------
7--------
8--------
9--------
10--------
11--------
12--------
13--------
14--------
15--------
16--------
17--------
18--------
uiStartup--14001179192310914741538
load--1194985167710112651323
domContentLoaded--1187974166910212571319
domInteractive--281699202487
firstPaint--193661271212201311
backgroundConnect--23921330417247281
firstReactRender--19115062231
initialActions--107114
loadScripts--966751145010110341095
setupStore--1463151625
numNetworkReqs--221581171572
19--------
BrowserifyPower User Home0--------
1--------
2--------
3--------
4--------
5--------
6--------
7--------
8--------
9--------
10--------
11--------
12--------
13--------
14--------
15--------
16--------
17--------
18--------
uiStartup--23521675656569024773938
load--12451053167315113171568
domContentLoaded--12231041166514712891551
domInteractive--3719134233895
firstPaint--2128054197265424
backgroundConnect--46129028343754051348
firstReactRender--25175472742
initialActions--106112
loadScripts--976807137313510411292
setupStore--1645081937
numNetworkReqs--1126124644131207
19--------
WebpackStandard Home0--------
1--------
2--------
3--------
4--------
5--------
6--------
7--------
8--------
9--------
10--------
11--------
12--------
13--------
14--------
15--------
16--------
17--------
18--------
uiStartup--85567511911119231087
load--7205981109107793910
domContentLoaded--7145951104106788905
domInteractive--2615105182275
firstPaint--1066029852137218
backgroundConnect--3618173283699
firstReactRender--15102841625
initialActions--102112
loadScripts--7125931102106781903
setupStore--1167371220
numNetworkReqs--221584171572
19--------
WebpackPower User Home0--------
1--------
2--------
3--------
4--------
5--------
6--------
7--------
8--------
9--------
10--------
11--------
12--------
13--------
14--------
15--------
16--------
17--------
18--------
uiStartup--1235849181622714171733
load--7046061058105718990
domContentLoaded--6956011034105704982
domInteractive--3317125233292
firstPaint--142641050111175241
backgroundConnect--15012733136148236
firstReactRender--21173332327
initialActions--102111
loadScripts--6925991026103702975
setupStore--1151721215
numNetworkReqs--1155227051132243
19--------
FirefoxBrowserifyStandard Home0--------
1--------
2--------
3--------
4--------
5--------
6--------
7--------
8--------
9--------
10--------
11--------
12--------
13--------
14--------
15--------
16--------
17--------
18--------
uiStartup--16331341221317517781967
load--13761157192315215001689
domContentLoaded--13751157191915215001689
domInteractive--70322354193145
firstPaint--------
backgroundConnect--73272264579172
firstReactRender--1293631314
initialActions--102112
loadScripts--13341144189413814231568
setupStore--13493141250
numNetworkReqs--231189191981
19--------
BrowserifyPower User Home0--------
1--------
2--------
3--------
4--------
5--------
6--------
7--------
8--------
9--------
10--------
11--------
12--------
13--------
14--------
15--------
16--------
17--------
18--------
uiStartup--30782115962977831334064
load--16461339740063516502259
domContentLoaded--16461339739963616502259
domInteractive--15238893141146423
firstPaint--------
backgroundConnect--3471241283261450937
firstReactRender--20156282029
initialActions--213122
loadScripts--16001296735663115762197
setupStore--1478715188201618
numNetworkReqs--84402534899206
19--------
WebpackStandard Home0--------
1--------
2--------
3--------
4--------
5--------
6--------
7--------
8--------
9--------
10--------
11--------
12--------
13--------
14--------
15--------
16--------
17--------
18--------
uiStartup--16331368236116517081933
load--14071162209712914901574
domContentLoaded--14061162209713014891574
domInteractive--883025547131164
firstPaint--------
backgroundConnect--69251694595158
firstReactRender--15115871524
initialActions--102122
loadScripts--13651148197811214271534
setupStore--1962853712106
numNetworkReqs--221280161864
19--------
WebpackPower User Home0--------
1--------
2--------
3--------
4--------
5--------
6--------
7--------
8--------
9--------
10--------
11--------
12--------
13--------
14--------
15--------
16--------
17--------
18--------
uiStartup--28632183864366729883530
load--16121310699457516911973
domContentLoaded--16121309699457516901973
domInteractive--14234587109164448
firstPaint--------
backgroundConnect--2961101173228331909
firstReactRender--22145962431
initialActions--204123
loadScripts--15761287695556916641935
setupStore--1468719187159635
numNetworkReqs--83372354898197
19--------
📊 Page Load Benchmark Results

Current Commit: 9f2b5f0 | Date: 2/3/2026

📄 Localhost MetaMask Test Dapp

Samples: 100

Summary

  • pageLoadTime-> current mean value: 1.05s (±131ms) 🟡 | historical mean value: 1.04s ⬆️ (historical data)
  • domContentLoaded-> current mean value: 722ms (±158ms) 🟢 | historical mean value: 723ms ⬇️ (historical data)
  • firstContentfulPaint-> current mean value: 90ms (±143ms) 🟢 | historical mean value: 78ms ⬆️ (historical data)

📈 Detailed Results

Metric Mean Std Dev Min Max P95 P99
pageLoadTime 1.05s 131ms 1.01s 2.33s 1.08s 2.33s
domContentLoaded 722ms 158ms 687ms 2.28s 746ms 2.28s
firstPaint 90ms 143ms 60ms 1.51s 88ms 1.51s
firstContentfulPaint 90ms 143ms 60ms 1.51s 88ms 1.51s
largestContentfulPaint 0ms 0ms 0ms 0ms 0ms 0ms
Bundle size diffs [🚨 Warning! Bundle size has increased!]
  • background: 334 Bytes (0.01%)
  • ui: 690 Bytes (0.01%)
  • common: 655 Bytes (0.01%)

gauthierpetetin and others added 3 commits February 3, 2026 19:03
Update en_GB locale to match the en locale changes:
- Rename storageErrorDescription to storageErrorDescriptionDefault
- Add storageErrorDescriptionNoSpace for disk space errors

Co-authored-by: Cursor <cursoragent@cursor.com>
Cherry-picked from PR #39705 (commit ad3cffd) to fix unit test
failure caused by getPlatform now returning PLATFORM_OTHER for
unknown user agents instead of defaulting to PLATFORM_CHROME.

Co-authored-by: Cursor <cursoragent@cursor.com>
Add the new storageWriteErrorType property to all E2E test snapshots
and fixture files to match the updated controller state.

Co-authored-by: Cursor <cursoragent@cursor.com>
@metamaskbotv2
Copy link
Contributor

metamaskbotv2 bot commented Feb 3, 2026

✨ Files requiring CODEOWNER review ✨

🕵️ @MetaMask/extension-privacy-reviewers (1 files, +1 -1)
  • 📁 test/
    • 📁 e2e/
      • 📁 tests/
        • 📁 settings/
          • 📄 state-logs.json +1 -1

🧪 @MetaMask/qa (1 files, +1 -1)
  • 📁 test/
    • 📁 e2e/
      • 📁 tests/
        • 📁 settings/
          • 📄 state-logs.json +1 -1

Co-authored-by: Cursor <cursoragent@cursor.com>
@metamaskbotv2
Copy link
Contributor

metamaskbotv2 bot commented Feb 3, 2026

Builds ready [8b57b87]
UI Startup Metrics (1367 ± 96 ms)
PlatformBuildTypePageMetricTest Title (ms)Persona (ms)Mean (ms)Min (ms)Max (ms)Std Dev (ms)P 75 (ms)P 95 (ms)
ChromeBrowserifyStandard Home0--------
1--------
2--------
3--------
4--------
5--------
6--------
7--------
8--------
9--------
10--------
11--------
12--------
13--------
14--------
15--------
16--------
17--------
18--------
uiStartup--1367115017939614251505
load--117198114838812281310
domContentLoaded--116597614778912231304
domInteractive--261699182376
firstPaint--161641204128201329
backgroundConnect--23121429514233261
firstReactRender--18107681931
initialActions--105113
loadScripts--94976812498810101074
setupStore--1262551422
numNetworkReqs--211589171573
19--------
BrowserifyPower User Home0--------
1--------
2--------
3--------
4--------
5--------
6--------
7--------
8--------
9--------
10--------
11--------
12--------
13--------
14--------
15--------
16--------
17--------
18--------
uiStartup--274217406001101526635429
load--13911143203219414531804
domContentLoaded--13711130201819414341789
domInteractive--48212614046128
firstPaint--3378020403693121453
backgroundConnect--63232128166104642589
firstReactRender--28185473146
initialActions--107112
loadScripts--1076853167217611261465
setupStore--1774871940
numNetworkReqs--1195328548143228
19--------
WebpackStandard Home0--------
1--------
2--------
3--------
4--------
5--------
6--------
7--------
8--------
9--------
10--------
11--------
12--------
13--------
14--------
15--------
16--------
17--------
18--------
uiStartup--86868410841089731050
load--73361198698808911
domContentLoaded--72760797697804905
domInteractive--251596162271
firstPaint--1066467071123193
backgroundConnect--3418110193778
firstReactRender--16113551828
initialActions--104112
loadScripts--72460597497802903
setupStore--1274261228
numNetworkReqs--221584181577
19--------
WebpackPower User Home0--------
1--------
2--------
3--------
4--------
5--------
6--------
7--------
8--------
9--------
10--------
11--------
12--------
13--------
14--------
15--------
16--------
17--------
18--------
uiStartup--1242855195424313911666
load--71461311081197071046
domContentLoaded--70460711021186951031
domInteractive--36161602834108
firstPaint--1456253295172334
backgroundConnect--15612939843157251
firstReactRender--23173842534
initialActions--102111
loadScripts--70260510931166921021
setupStore--1253041419
numNetworkReqs--1445131759167257
19--------
FirefoxBrowserifyStandard Home0--------
1--------
2--------
3--------
4--------
5--------
6--------
7--------
8--------
9--------
10--------
11--------
12--------
13--------
14--------
15--------
16--------
17--------
18--------
uiStartup--16971343241820018382049
load--14221174199515215411694
domContentLoaded--14201174199515215411694
domInteractive--813421442109147
firstPaint--------
backgroundConnect--833121850121188
firstReactRender--12101921315
initialActions--102122
loadScripts--13731151186012814631592
setupStore--165219291233
numNetworkReqs--231285201882
19--------
BrowserifyPower User Home0--------
1--------
2--------
3--------
4--------
5--------
6--------
7--------
8--------
9--------
10--------
11--------
12--------
13--------
14--------
15--------
16--------
17--------
18--------
uiStartup--30452284508150531844255
load--15961274367131816762293
domContentLoaded--15951274367131816762293
domInteractive--13536728107148343
firstPaint--------
backgroundConnect--3621311161243469895
firstReactRender--20157292025
initialActions--217122
loadScripts--15421250356829115812123
setupStore--1387781190132613
numNetworkReqs--83412294695210
19--------
WebpackStandard Home0--------
1--------
2--------
3--------
4--------
5--------
6--------
7--------
8--------
9--------
10--------
11--------
12--------
13--------
14--------
15--------
16--------
17--------
18--------
uiStartup--16021350222016216781958
load--13801157172012014651626
domContentLoaded--13791157171412014601625
domInteractive--792823247112146
firstPaint--------
backgroundConnect--66241904375166
firstReactRender--14104751420
initialActions--107122
loadScripts--13421140161510414101575
setupStore--164166261297
numNetworkReqs--221386161867
19--------
WebpackPower User Home0--------
1--------
2--------
3--------
4--------
5--------
6--------
7--------
8--------
9--------
10--------
11--------
12--------
13--------
14--------
15--------
16--------
17--------
18--------
uiStartup--30402085894892330534099
load--17141306730484917502545
domContentLoaded--17131306730484917492544
domInteractive--15432750161146660
firstPaint--------
backgroundConnect--3171271058221354871
firstReactRender--21153242329
initialActions--213122
loadScripts--16741285724884516972512
setupStore--1897864218271682
numNetworkReqs--853728651101194
19--------
📊 Page Load Benchmark Results

Current Commit: 8b57b87 | Date: 2/3/2026

📄 Localhost MetaMask Test Dapp

Samples: 100

Summary

  • pageLoadTime-> current mean value: 1.08s (±37ms) 🟡 | historical mean value: 1.04s ⬆️ (historical data)
  • domContentLoaded-> current mean value: 751ms (±35ms) 🟢 | historical mean value: 723ms ⬆️ (historical data)
  • firstContentfulPaint-> current mean value: 81ms (±10ms) 🟢 | historical mean value: 78ms ⬆️ (historical data)

📈 Detailed Results

Metric Mean Std Dev Min Max P95 P99
pageLoadTime 1.08s 37ms 1.05s 1.37s 1.10s 1.37s
domContentLoaded 751ms 35ms 727ms 1.03s 772ms 1.03s
firstPaint 81ms 10ms 64ms 172ms 88ms 172ms
firstContentfulPaint 81ms 10ms 64ms 172ms 88ms 172ms
largestContentfulPaint 0ms 0ms 0ms 0ms 0ms 0ms
Bundle size diffs [🚨 Warning! Bundle size has increased!]
  • background: 334 Bytes (0.01%)
  • ui: 690 Bytes (0.01%)
  • common: 680 Bytes (0.01%)

Add mock for shared/lib/trace to fix test failure caused by importing
StorageWriteErrorType from shared/constants/app-state which has a
transitive dependency on the trace module.

Co-authored-by: Cursor <cursoragent@cursor.com>
@metamaskbotv2
Copy link
Contributor

metamaskbotv2 bot commented Feb 3, 2026

Builds ready [56d8b6a]
UI Startup Metrics (1380 ± 100 ms)
PlatformBuildTypePageMetricTest Title (ms)Persona (ms)Mean (ms)Min (ms)Max (ms)Std Dev (ms)P 75 (ms)P 95 (ms)
ChromeBrowserifyStandard Home0--------
1--------
2--------
3--------
4--------
5--------
6--------
7--------
8--------
9--------
10--------
11--------
12--------
13--------
14--------
15--------
16--------
17--------
18--------
uiStartup--13801168187110014451501
load--117796815349612271305
domContentLoaded--117096315219612221299
domInteractive--2616100172273
firstPaint--160661138119199304
backgroundConnect--23221526612235261
firstReactRender--16103441823
initialActions--106113
loadScripts--95475112939510071084
setupStore--1263051522
numNetworkReqs--211581171571
19--------
BrowserifyPower User Home0--------
1--------
2--------
3--------
4--------
5--------
6--------
7--------
8--------
9--------
10--------
11--------
12--------
13--------
14--------
15--------
16--------
17--------
18--------
uiStartup--20891667486340921692352
load--11651044191916411541611
domContentLoaded--11511034191216111341598
domInteractive--37191792834113
firstPaint--197701627165252341
backgroundConnect--3412881526125340439
firstReactRender--24166282543
initialActions--104112
loadScripts--90779815621458951311
setupStore--1583241726
numNetworkReqs--1285025855153240
19--------
WebpackStandard Home0--------
1--------
2--------
3--------
4--------
5--------
6--------
7--------
8--------
9--------
10--------
11--------
12--------
13--------
14--------
15--------
16--------
17--------
18--------
uiStartup--88168811371059461082
load--745611100497818942
domContentLoaded--74060799897812935
domInteractive--261694162473
firstPaint--1066132744120187
backgroundConnect--3418169234181
firstReactRender--16103761631
initialActions--107112
loadScripts--73760599696804933
setupStore--1263551222
numNetworkReqs--221581181576
19--------
WebpackPower User Home0--------
1--------
2--------
3--------
4--------
5--------
6--------
7--------
8--------
9--------
10--------
11--------
12--------
13--------
14--------
15--------
16--------
17--------
18--------
uiStartup--1227835172221614151628
load--67657310821136801006
domContentLoaded--66756710751136701000
domInteractive--33172172831101
firstPaint--1335950673167272
backgroundConnect--15810434028160203
firstReactRender--22164742330
initialActions--102111
loadScripts--6655651067112668993
setupStore--1041831116
numNetworkReqs--1314827258153257
19--------
FirefoxBrowserifyStandard Home0--------
1--------
2--------
3--------
4--------
5--------
6--------
7--------
8--------
9--------
10--------
11--------
12--------
13--------
14--------
15--------
16--------
17--------
18--------
uiStartup--16111316229917917121974
load--13571143172713814481637
domContentLoaded--13561143172613814481637
domInteractive--773324253100202
firstPaint--------
backgroundConnect--73272434678161
firstReactRender--1294041317
initialActions--102112
loadScripts--13171124165912314071587
setupStore--124140161138
numNetworkReqs--231290181977
19--------
BrowserifyPower User Home0--------
1--------
2--------
3--------
4--------
5--------
6--------
7--------
8--------
9--------
10--------
11--------
12--------
13--------
14--------
15--------
16--------
17--------
18--------
uiStartup--30102180865476731594122
load--16301310694459516812227
domContentLoaded--16301310694359516812227
domInteractive--1334266697137337
firstPaint--------
backgroundConnect--3011241367243327901
firstReactRender--19147172025
initialActions--103122
loadScripts--15771289687358115892118
setupStore--1268832188102694
numNetworkReqs--79402184691203
19--------
WebpackStandard Home0--------
1--------
2--------
3--------
4--------
5--------
6--------
7--------
8--------
9--------
10--------
11--------
12--------
13--------
14--------
15--------
16--------
17--------
18--------
uiStartup--16391358218517217052042
load--14041208175511314621635
domContentLoaded--14031208175511314611635
domInteractive--883022447126174
firstPaint--------
backgroundConnect--66232004378159
firstReactRender--14112931520
initialActions--103122
loadScripts--1369119216639914261540
setupStore--155233291137
numNetworkReqs--221285161963
19--------
WebpackPower User Home0--------
1--------
2--------
3--------
4--------
5--------
6--------
7--------
8--------
9--------
10--------
11--------
12--------
13--------
14--------
15--------
16--------
17--------
18--------
uiStartup--29822146453552033764028
load--15931285313133517582355
domContentLoaded--15931285313133617582355
domInteractive--12731611129113539
firstPaint--------
backgroundConnect--35011614222984081006
firstReactRender--22155662429
initialActions--2040423
loadScripts--15341253308929916872183
setupStore--1456752185215614
numNetworkReqs--77402314594188
19--------
📊 Page Load Benchmark Results

Current Commit: 56d8b6a | Date: 2/3/2026

📄 Localhost MetaMask Test Dapp

Samples: 100

Summary

  • pageLoadTime-> current mean value: 1.05s (±45ms) 🟡 | historical mean value: 1.04s ⬆️ (historical data)
  • domContentLoaded-> current mean value: 732ms (±42ms) 🟢 | historical mean value: 723ms ⬆️ (historical data)
  • firstContentfulPaint-> current mean value: 78ms (±15ms) 🟢 | historical mean value: 78ms ⬇️ (historical data)

📈 Detailed Results

Metric Mean Std Dev Min Max P95 P99
pageLoadTime 1.05s 45ms 1.02s 1.38s 1.09s 1.38s
domContentLoaded 732ms 42ms 709ms 1.04s 772ms 1.04s
firstPaint 78ms 15ms 60ms 216ms 88ms 216ms
firstContentfulPaint 78ms 15ms 60ms 216ms 88ms 216ms
largestContentfulPaint 0ms 0ms 0ms 0ms 0ms 0ms
Bundle size diffs [🚨 Warning! Bundle size has increased!]
  • background: 334 Bytes (0.01%)
  • ui: 690 Bytes (0.01%)
  • common: 680 Bytes (0.01%)

@metamaskbotv2
Copy link
Contributor

metamaskbotv2 bot commented Feb 5, 2026

Builds ready [a67b7ad]
UI Startup Metrics (1388 ± 90 ms)
PlatformBuildTypePageMetricTest Title (ms)Persona (ms)Mean (ms)Min (ms)Max (ms)Std Dev (ms)P 75 (ms)P 95 (ms)
ChromeBrowserifyStandard Home0--------
1--------
2--------
3--------
4--------
5--------
6--------
7--------
8--------
9--------
10--------
11--------
12--------
13--------
14--------
15--------
16--------
17--------
18--------
uiStartup--1388117416569014471524
load--1194100514128712621319
domContentLoaded--118698614048812531315
domInteractive--271691172579
firstPaint--2476514253002181242
backgroundConnect--23821531217244271
firstReactRender--18103552029
initialActions--1011214
loadScripts--96777011738710331095
setupStore--1463661625
numNetworkReqs--231586201583
19--------
BrowserifyPower User Home0--------
1--------
2--------
3--------
4--------
5--------
6--------
7--------
8--------
9--------
10--------
11--------
12--------
13--------
14--------
15--------
16--------
17--------
18--------
uiStartup--17381418279919917942137
load--11671009201517911441636
domContentLoaded--11511002199617311301626
domInteractive--35181702735117
firstPaint--219831755262248296
backgroundConnect--32828666145335379
firstReactRender--23155172538
initialActions--104112
loadScripts--90477816381598871348
setupStore--1674571935
numNetworkReqs--1114727250136251
19--------
WebpackStandard Home0--------
1--------
2--------
3--------
4--------
5--------
6--------
7--------
8--------
9--------
10--------
11--------
12--------
13--------
14--------
15--------
16--------
17--------
18--------
uiStartup--87768611651039301080
load--739615107998798971
domContentLoaded--734611107398792966
domInteractive--251592182179
firstPaint--1206383191150231
backgroundConnect--3719119224195
firstReactRender--16103661727
initialActions--103112
loadScripts--731609107197790964
setupStore--1263861227
numNetworkReqs--231587201584
19--------
WebpackPower User Home0--------
1--------
2--------
3--------
4--------
5--------
6--------
7--------
8--------
9--------
10--------
11--------
12--------
13--------
14--------
15--------
16--------
17--------
18--------
uiStartup--1227884201319313291637
load--70861913211366861090
domContentLoaded--69961413111366781080
domInteractive--33171662729105
firstPaint--13964599102160410
backgroundConnect--16313137850162268
firstReactRender--2317224202327
initialActions--102111
loadScripts--69661212911336761071
setupStore--1253841317
numNetworkReqs--95482744699200
19--------
FirefoxBrowserifyStandard Home0--------
1--------
2--------
3--------
4--------
5--------
6--------
7--------
8--------
9--------
10--------
11--------
12--------
13--------
14--------
15--------
16--------
17--------
18--------
uiStartup--16781303239323317952163
load--14101141213719315131867
domContentLoaded--14091141213719315131867
domInteractive--72331953795139
firstPaint--------
backgroundConnect--75281994791178
firstReactRender--13104351318
initialActions--102022
loadScripts--13681127198417614451764
setupStore--164214281167
numNetworkReqs--251297231892
19--------
BrowserifyPower User Home0--------
1--------
2--------
3--------
4--------
5--------
6--------
7--------
8--------
9--------
10--------
11--------
12--------
13--------
14--------
15--------
16--------
17--------
18--------
uiStartup--27002086440546027983846
load--15281207251525615732239
domContentLoaded--15271201251025615712239
domInteractive--1113458095117357
firstPaint--------
backgroundConnect--3111161351279305914
firstReactRender--211571102156
initialActions--103122
loadScripts--14761182234723715012195
setupStore--1249781184109650
numNetworkReqs--66381382894123
19--------
WebpackStandard Home0--------
1--------
2--------
3--------
4--------
5--------
6--------
7--------
8--------
9--------
10--------
11--------
12--------
13--------
14--------
15--------
16--------
17--------
18--------
uiStartup--16251345213418117311966
load--13891157185012514631615
domContentLoaded--13881157185012514631611
domInteractive--942923548131174
firstPaint--------
backgroundConnect--72212735091171
firstReactRender--14112321519
initialActions--103112
loadScripts--13471101173910914131549
setupStore--1952683812125
numNetworkReqs--231287181873
19--------
WebpackPower User Home0--------
1--------
2--------
3--------
4--------
5--------
6--------
7--------
8--------
9--------
10--------
11--------
12--------
13--------
14--------
15--------
16--------
17--------
18--------
uiStartup--26991929421449428313853
load--15511227257532317302436
domContentLoaded--15501222257532317302435
domInteractive--10730593108100429
firstPaint--------
backgroundConnect--3071081321262274933
firstReactRender--21155962430
initialActions--203123
loadScripts--15101209251230616692204
setupStore--1577822213204678
numNetworkReqs--64351453097117
19--------
📊 Page Load Benchmark Results

Current Commit: a67b7ad | Date: 2/5/2026

📄 Localhost MetaMask Test Dapp

Samples: 100

Summary

  • pageLoadTime-> current mean value: 1.02s (±36ms) 🟡 | historical mean value: 1.03s ⬇️ (historical data)
  • domContentLoaded-> current mean value: 712ms (±34ms) 🟢 | historical mean value: 723ms ⬇️ (historical data)
  • firstContentfulPaint-> current mean value: 74ms (±10ms) 🟢 | historical mean value: 80ms ⬇️ (historical data)

📈 Detailed Results

Metric Mean Std Dev Min Max P95 P99
pageLoadTime 1.02s 36ms 998ms 1.29s 1.05s 1.29s
domContentLoaded 712ms 34ms 689ms 971ms 736ms 971ms
firstPaint 74ms 10ms 60ms 156ms 88ms 156ms
firstContentfulPaint 74ms 10ms 60ms 156ms 88ms 156ms
largestContentfulPaint 0ms 0ms 0ms 0ms 0ms 0ms
Bundle size diffs [🚨 Warning! Bundle size has increased!]
  • background: 334 Bytes (0.01%)
  • ui: 690 Bytes (0.01%)
  • common: 725 Bytes (0.01%)

This reverts commit 59a2e5f.

The mock is no longer needed as the underlying issue has been
resolved in main.

Co-authored-by: Cursor <cursoragent@cursor.com>
trace: jest.fn(),
endTrace: jest.fn(),
TraceName: {},
}));
Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Here, we add mock for '../../../../shared/lib/trace' to fix test failure caused by importing StorageWriteErrorType from '../../../../shared/constants/app-state' in persistence-manager.ts which has a transitive dependency on the trace module.

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Strange that a constants file would have tracing 🤔 Oh well.

@metamaskbotv2
Copy link
Contributor

metamaskbotv2 bot commented Feb 5, 2026

Builds ready [b116620]
UI Startup Metrics (1395 ± 97 ms)
PlatformBuildTypePageMetricTest Title (ms)Persona (ms)Mean (ms)Min (ms)Max (ms)Std Dev (ms)P 75 (ms)P 95 (ms)
ChromeBrowserifyStandard Home0--------
1--------
2--------
3--------
4--------
5--------
6--------
7--------
8--------
9--------
10--------
11--------
12--------
13--------
14--------
15--------
16--------
17--------
18--------
uiStartup--1395117717789714491548
load--1189999153910012611332
domContentLoaded--1182982151810012491327
domInteractive--261689172477
firstPaint--173691263160205302
backgroundConnect--23821829516245274
firstReactRender--18113752026
initialActions--108113
loadScripts--961773128610010361107
setupStore--1263551621
numNetworkReqs--231591201584
19--------
BrowserifyPower User Home0--------
1--------
2--------
3--------
4--------
5--------
6--------
7--------
8--------
9--------
10--------
11--------
12--------
13--------
14--------
15--------
16--------
17--------
18--------
uiStartup--17501354270621218142204
load--11471001199018811211624
domContentLoaded--1134993198418611071613
domInteractive--3417147253197
firstPaint--187681607168237334
backgroundConnect--32228342731336392
firstReactRender--23145882442
initialActions--104112
loadScripts--89477116601708631330
setupStore--1565061723
numNetworkReqs--1184827549140260
19--------
WebpackStandard Home0--------
1--------
2--------
3--------
4--------
5--------
6--------
7--------
8--------
9--------
10--------
11--------
12--------
13--------
14--------
15--------
16--------
17--------
18--------
uiStartup--82567211641018891030
load--692595105797759904
domContentLoaded--686591104996754899
domInteractive--261688182280
firstPaint--1026263569114174
backgroundConnect--41181263054113
firstReactRender--15103651626
initialActions--105112
loadScripts--684589104695751897
setupStore--1163241119
numNetworkReqs--221588201581
19--------
WebpackPower User Home0--------
1--------
2--------
3--------
4--------
5--------
6--------
7--------
8--------
9--------
10--------
11--------
12--------
13--------
14--------
15--------
16--------
17--------
18--------
uiStartup--1244851176919213421688
load--71061611191307001104
domContentLoaded--70160911121306851098
domInteractive--3418127223396
firstPaint--1406452077164326
backgroundConnect--16413239248163302
firstReactRender--21163332329
initialActions--102111
loadScripts--69960711031286831089
setupStore--1142031216
numNetworkReqs--1214928458149277
19--------
FirefoxBrowserifyStandard Home0--------
1--------
2--------
3--------
4--------
5--------
6--------
7--------
8--------
9--------
10--------
11--------
12--------
13--------
14--------
15--------
16--------
17--------
18--------
uiStartup--16221346225319417261924
load--13591149183914714571630
domContentLoaded--13581149183914714561630
domInteractive--71322033791139
firstPaint--------
backgroundConnect--76302385174207
firstReactRender--1291711314
initialActions--102012
loadScripts--13201117172412813911585
setupStore--1862103113107
numNetworkReqs--251299231895
19--------
BrowserifyPower User Home0--------
1--------
2--------
3--------
4--------
5--------
6--------
7--------
8--------
9--------
10--------
11--------
12--------
13--------
14--------
15--------
16--------
17--------
18--------
uiStartup--26871990455949927863869
load--15381197252327316452233
domContentLoaded--15371190252227316452233
domInteractive--11734611100117302
firstPaint--------
backgroundConnect--31610913823092611106
firstReactRender--18146461926
initialActions--206122
loadScripts--14821174249525215502148
setupStore--123775318793677
numNetworkReqs--66371342992120
19--------
WebpackStandard Home0--------
1--------
2--------
3--------
4--------
5--------
6--------
7--------
8--------
9--------
10--------
11--------
12--------
13--------
14--------
15--------
16--------
17--------
18--------
uiStartup--15361287192012816111799
load--13381161168010914131531
domContentLoaded--13371161167910914121531
domInteractive--832823243120141
firstPaint--------
backgroundConnect--63241644079146
firstReactRender--14115551418
initialActions--102012
loadScripts--1302114915699413771492
setupStore--1063651024
numNetworkReqs--231384181775
19--------
WebpackPower User Home0--------
1--------
2--------
3--------
4--------
5--------
6--------
7--------
8--------
9--------
10--------
11--------
12--------
13--------
14--------
15--------
16--------
17--------
18--------
uiStartup--27761998688962530103745
load--16011235560150617812267
domContentLoaded--16001231560150717812266
domInteractive--12530736149107523
firstPaint--------
backgroundConnect--3761161361311539925
firstReactRender--22166762431
initialActions--207122
loadScripts--15461218558548517162092
setupStore--1428820200142667
numNetworkReqs--65351553291140
19--------
📊 Page Load Benchmark Results

Current Commit: b116620 | Date: 2/5/2026

📄 Localhost MetaMask Test Dapp

Samples: 100

Summary

  • pageLoadTime-> current mean value: 1.02s (±35ms) 🟡 | historical mean value: 1.04s ⬇️ (historical data)
  • domContentLoaded-> current mean value: 713ms (±34ms) 🟢 | historical mean value: 724ms ⬇️ (historical data)
  • firstContentfulPaint-> current mean value: 75ms (±11ms) 🟢 | historical mean value: 77ms ⬇️ (historical data)

📈 Detailed Results

Metric Mean Std Dev Min Max P95 P99
pageLoadTime 1.02s 35ms 1.00s 1.29s 1.04s 1.29s
domContentLoaded 713ms 34ms 695ms 971ms 725ms 971ms
firstPaint 75ms 11ms 60ms 160ms 84ms 160ms
firstContentfulPaint 75ms 11ms 60ms 160ms 84ms 160ms
largestContentfulPaint 0ms 0ms 0ms 0ms 0ms 0ms
Bundle size diffs [🚨 Warning! Bundle size has increased!]
  • background: 334 Bytes (0.01%)
  • ui: 690 Bytes (0.01%)
  • common: 725 Bytes (0.01%)

gauthierpetetin and others added 2 commits February 5, 2026 16:33
Simplify failure tracking in PersistenceManager by removing the
redundant boolean flag. Now #errorTypeBeforeCallbackRegistered
serves dual purpose: if not null, it indicates a failure occurred
and contains the error type.

Co-authored-by: Cursor <cursoragent@cursor.com>
Infer toast visibility from storageWriteErrorType !== null instead
of maintaining a separate boolean flag. This simplifies the state
by removing redundancy as suggested in code review.

Co-authored-by: Cursor <cursoragent@cursor.com>
Copy link

@cursor cursor bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Cursor Bugbot has reviewed your changes and found 1 potential issue.

Use truthy check instead of !== null to properly handle both
null and undefined as "no error" in mock states during tests.

Co-authored-by: Cursor <cursoragent@cursor.com>
Copy link
Member

@Gudahtt Gudahtt left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM!

@github-project-automation github-project-automation bot moved this from Needs dev review to Review finalised - Ready to be merged in PR review queue Feb 6, 2026
@DDDDDanica
Copy link
Contributor

Tested locally, looks good to me !

@gauthierpetetin gauthierpetetin added this pull request to the merge queue Feb 6, 2026
Merged via the queue into main with commit 16b249f Feb 6, 2026
182 checks passed
@gauthierpetetin gauthierpetetin deleted the file-error-no-space branch February 6, 2026 15:22
@github-actions github-actions bot locked and limited conversation to collaborators Feb 6, 2026
@metamaskbot metamaskbot added the release-13.19.0 Issue or pull request that will be included in release 13.19.0 label Feb 6, 2026
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.

Labels

release-13.19.0 Issue or pull request that will be included in release 13.19.0 size-M team-extension-platform Extension Platform team

Projects

Archived in project

Development

Successfully merging this pull request may close these issues.

4 participants