From 0ab5bb5542e8e5039d9febe3749c552aade0b2ca Mon Sep 17 00:00:00 2001 From: Luke Schoen Date: Fri, 27 Jun 2025 09:48:50 +1000 Subject: [PATCH 1/5] Update FAQ.md with workaround to error `Resource::kQuotaBytes quota exceeded` Update to add FAQ that includes a workaround to overcoming the `Resource::kQuotaBytes quota exceeded` error associated with this issue https://github.com/polkadot-js/extension/issues/1563 --- docs/extension/FAQ.md | 15 ++++++++++++--- 1 file changed, 12 insertions(+), 3 deletions(-) diff --git a/docs/extension/FAQ.md b/docs/extension/FAQ.md index dec6ab3b79..4ab96753d6 100644 --- a/docs/extension/FAQ.md +++ b/docs/extension/FAQ.md @@ -17,12 +17,21 @@ to mention any new website. To add a new language, you can submit a PR to the [extension's repository](https://github.com/polkadot-js/extension). Start by creating a new directory in `extension/packages/extension/public/locales/` named after the language code you wish to add (e.g "es", for spanish). -Copy the file `translation.json` [from the english directory](https://github.com/polkadot-js/extension/blob/master/packages/extension/public/locales/en/translation.json) to the newly created directory and fill in the blanks. +Copy the file [translation.json](cci:7://file:///Users/luke/code/clones/github/ltfschoen/extension/packages/extension/public/locales/bn/translation.json:0:0-0:0) [from the english directory](https://github.com/polkadot-js/extension/blob/master/packages/extension/public/locales/en/translation.json) to the newly created directory and fill in the blanks. Take a look at the other translation files to see how it works. Finally, add the new language in the selection menu by adding its name and code to the array returned by the [getLanguageOptions](https://github.com/polkadot-js/extension/blob/master/packages/extension-ui/src/util/getLanguageOptions.ts#L12-L27). Once your PR is submitted and approved, the new language will be available in the next release of the extension. +## Why can't I authorize any more accounts to connect to dApps and its generating "Resource::kQuotaBytes quota exceeded" errors. +The extension stores authorization data in Chrome's local storage, which has size limitations. If your total authorizations count across all dApps exceeds the storage quota limit (~287) then you might reach the storage quota limit. + +When this happens, you'll see the error message "Resource::kQuotaBytes quota exceeded" in the Chrome developer console of the window entitled "Account connection request" and when you try to click the button labelled `Connect account(s)` you won't be able to authorize additional accounts. + +**Current workaround:** Revoke access permissions for at least one dApp for one or more accounts to free up storage space. This will allow you to add new authorizations for the same or different accounts/dApps. + +**Note:** Future versions of the extension may address this issue by implementing a chunking mechanism as mentioned [here](https://github.com/polkadot-js/extension/pull/1564#issuecomment-3010599765) that processes authorizations in smaller batches, preventing quota errors while ensuring all authorized accounts are properly displayed in the UI. + ## I want to send funds directly from the extension. The extension is not meant to be a full wallet replacement. It tries to focus on pure account management while making this as smooth as possible. The extension simply makes the stored/imported accounts available @@ -41,13 +50,13 @@ via the "Options" screen. ## What does it mean to derive an account? We can imagine that accounts are stored as a tree. It allows us to structure accounts by our own needs. The root account is created at first and all the new ones will be its children by default. If we want to -derive from other accounts, it can be done by selecting Derive New Account option in the parent account’s +derive from other accounts, it can be done by selecting Derive New Account option in the parent account's context menu. Before deriving an account, the [HDKD derivation path](https://github.com/paritytech/parity-signer/wiki/HDKD-on-Parity-Signer#the-form-of-path) can be provided - it is a great tool that could be used for further account structuring. The format of a derivation path is `//////` where -* `//hard` means that the connection between accounts is not “visible” for public addresses. +* `//hard` means that the connection between accounts is not "visible" for public addresses. * `/soft` connects accounts in a manner that can be proven. * `///password` provides an additional (optional) encryption. From 8fe5af4b3d85edd08e76096ae0de1fe24373ff44 Mon Sep 17 00:00:00 2001 From: Luke Schoen Date: Fri, 27 Jun 2025 09:56:38 +1000 Subject: [PATCH 2/5] restore unnecessary change --- docs/extension/FAQ.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/extension/FAQ.md b/docs/extension/FAQ.md index 4ab96753d6..723a85ffbc 100644 --- a/docs/extension/FAQ.md +++ b/docs/extension/FAQ.md @@ -17,7 +17,7 @@ to mention any new website. To add a new language, you can submit a PR to the [extension's repository](https://github.com/polkadot-js/extension). Start by creating a new directory in `extension/packages/extension/public/locales/` named after the language code you wish to add (e.g "es", for spanish). -Copy the file [translation.json](cci:7://file:///Users/luke/code/clones/github/ltfschoen/extension/packages/extension/public/locales/bn/translation.json:0:0-0:0) [from the english directory](https://github.com/polkadot-js/extension/blob/master/packages/extension/public/locales/en/translation.json) to the newly created directory and fill in the blanks. +Copy the file `translation.json` [from the english directory](https://github.com/polkadot-js/extension/blob/master/packages/extension/public/locales/en/translation.json) to the newly created directory and fill in the blanks. Take a look at the other translation files to see how it works. Finally, add the new language in the selection menu by adding its name and code to the array returned by the [getLanguageOptions](https://github.com/polkadot-js/extension/blob/master/packages/extension-ui/src/util/getLanguageOptions.ts#L12-L27). From 6b7c911f89f5f56d045347c25de4b46d653a8889 Mon Sep 17 00:00:00 2001 From: Luke Schoen Date: Fri, 27 Jun 2025 10:14:52 +1000 Subject: [PATCH 3/5] improve comment --- docs/extension/FAQ.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/docs/extension/FAQ.md b/docs/extension/FAQ.md index 723a85ffbc..dd395c894f 100644 --- a/docs/extension/FAQ.md +++ b/docs/extension/FAQ.md @@ -26,11 +26,11 @@ Once your PR is submitted and approved, the new language will be available in th ## Why can't I authorize any more accounts to connect to dApps and its generating "Resource::kQuotaBytes quota exceeded" errors. The extension stores authorization data in Chrome's local storage, which has size limitations. If your total authorizations count across all dApps exceeds the storage quota limit (~287) then you might reach the storage quota limit. -When this happens, you'll see the error message "Resource::kQuotaBytes quota exceeded" in the Chrome developer console of the window entitled "Account connection request" and when you try to click the button labelled `Connect account(s)` you won't be able to authorize additional accounts. +When this happens, you might see the error message "Resource::kQuotaBytes quota exceeded" in the Chrome developer console of the window entitled "Account connection request" and when you try to click the button labelled `Connect account(s)` when 1 or more accounts are selected then that button won't work and you won't be able to authorize additional accounts. -**Current workaround:** Revoke access permissions for at least one dApp for one or more accounts to free up storage space. This will allow you to add new authorizations for the same or different accounts/dApps. +**Current workaround:** Revoke access permissions for at least one dApp for one or more accounts to free up storage space but unchecking checkboxes associated with those accounts in the `Accounts connected to ` window. This will allow you to add new authorizations for the same or different accounts/dApps. -**Note:** Future versions of the extension may address this issue by implementing a chunking mechanism as mentioned [here](https://github.com/polkadot-js/extension/pull/1564#issuecomment-3010599765) that processes authorizations in smaller batches, preventing quota errors while ensuring all authorized accounts are properly displayed in the UI. +**Note:** Future versions of the extension may address this issue by implementing a viable solution. So far a chunking mechanism has been proposed as mentioned [here](https://github.com/polkadot-js/extension/pull/1564#issuecomment-3010599765). It processes authorizations in smaller batches, which may prevent quota errors, but that's unlikely since it appears the error is due to an upper limit that is the storage quota limit previously mentioned, plus that solution currently has a bug in that not all authorized accounts (only 10 for each dApp) are being displayed in the UI. ## I want to send funds directly from the extension. The extension is not meant to be a full wallet replacement. It tries to focus on pure account management From 7e77b83f3e1ef2da0d687d446a66796ab19ece5a Mon Sep 17 00:00:00 2001 From: Luke Schoen Date: Fri, 27 Jun 2025 10:23:11 +1000 Subject: [PATCH 4/5] improve comment further --- docs/extension/FAQ.md | 1 + 1 file changed, 1 insertion(+) diff --git a/docs/extension/FAQ.md b/docs/extension/FAQ.md index dd395c894f..f38486f070 100644 --- a/docs/extension/FAQ.md +++ b/docs/extension/FAQ.md @@ -31,6 +31,7 @@ When this happens, you might see the error message "Resource::kQuotaBytes quota **Current workaround:** Revoke access permissions for at least one dApp for one or more accounts to free up storage space but unchecking checkboxes associated with those accounts in the `Accounts connected to ` window. This will allow you to add new authorizations for the same or different accounts/dApps. **Note:** Future versions of the extension may address this issue by implementing a viable solution. So far a chunking mechanism has been proposed as mentioned [here](https://github.com/polkadot-js/extension/pull/1564#issuecomment-3010599765). It processes authorizations in smaller batches, which may prevent quota errors, but that's unlikely since it appears the error is due to an upper limit that is the storage quota limit previously mentioned, plus that solution currently has a bug in that not all authorized accounts (only 10 for each dApp) are being displayed in the UI. +It appears that the chunking solution may only addresses the quota error during a single operation without solving the fundamental issue of hitting Chrome's overall storage limits, where Chrome storage has both per-key and total extension storage limits, so if the current extension is storaging all dapps and associated accounts under the same key then a potential solution could be to store each dApp as a separate key in Chrome storage. ## I want to send funds directly from the extension. The extension is not meant to be a full wallet replacement. It tries to focus on pure account management From 40a360ccc881046292b7f771adde1e1012a3b3c2 Mon Sep 17 00:00:00 2001 From: Luke Schoen Date: Sat, 28 Jun 2025 22:41:56 +1000 Subject: [PATCH 5/5] add further FAQ --- docs/extension/FAQ.md | 3 +++ 1 file changed, 3 insertions(+) diff --git a/docs/extension/FAQ.md b/docs/extension/FAQ.md index f38486f070..535f4ac14d 100644 --- a/docs/extension/FAQ.md +++ b/docs/extension/FAQ.md @@ -33,6 +33,9 @@ When this happens, you might see the error message "Resource::kQuotaBytes quota **Note:** Future versions of the extension may address this issue by implementing a viable solution. So far a chunking mechanism has been proposed as mentioned [here](https://github.com/polkadot-js/extension/pull/1564#issuecomment-3010599765). It processes authorizations in smaller batches, which may prevent quota errors, but that's unlikely since it appears the error is due to an upper limit that is the storage quota limit previously mentioned, plus that solution currently has a bug in that not all authorized accounts (only 10 for each dApp) are being displayed in the UI. It appears that the chunking solution may only addresses the quota error during a single operation without solving the fundamental issue of hitting Chrome's overall storage limits, where Chrome storage has both per-key and total extension storage limits, so if the current extension is storaging all dapps and associated accounts under the same key then a potential solution could be to store each dApp as a separate key in Chrome storage. +## Why can't I authorize any more accounts to connect to a dApp at https://localhost:3000 +When building and debugging a dApp locally using HTTPS and self-signed certificates that interact with the Polkadot.js Extension when you first load the dApp the Polkadot.js Extension popup window may appear asking you which accounts to grant access to the dApp, but after connecting them you might find that you can't later update that list in the Manage Website Access section, so another workaround is to click the icon to delete that dApp in the Manage Website Access section and then reload the dApp so the popup window appears again so you're able to grant it permissions from scratch again. + ## I want to send funds directly from the extension. The extension is not meant to be a full wallet replacement. It tries to focus on pure account management while making this as smooth as possible. The extension simply makes the stored/imported accounts available