Category:

Understanding and Preventing Session Buddy Data Loss: An In-Depth Analysis

June 23, 2024 in Uncategorized

We have received some reports about spontaneous loss of collection and history data in Session Buddy. This post outlines what we know about this issue, what you can do to protect yourself, and our plans to address the problem.

Overview

At a high level, the problem stems from the fact that local data is inherently vulnerable. This problem is not unique to Session Buddy v4. Session Buddy v3, although it used a different local storage technology, suffered from this as well. In fact all extensions that store data locally are similarly vulnerable.

While reports involving permanent data loss are statistically rare, it is critical for us to prioritize the pursuit of remedies as any risk to data is unacceptable.

Symptoms

Data loss in Session Buddy may follow or be accompanied by:

  • A browser prompt to “repair” the extension due to corruption. Proceeding with the repair then clears the data Session Buddy stores locally.
  • A blank screen when opening Session Buddy
  • An empty collection or history list
  • IndexedDB errors in the console during startup or operation

Data loss may be limited to either collections or history or in some cases affect all extension data, including settings.

We have not heard of or expect data loss scenarios resulting in the dropping of individual collections or history events.

Causes

The fundamental problem is that Session Buddy data is stored locally and the underlying storage mechanisms are controlled by the browser.

While storing data this way has benefits (privacy, cost, performance, simplicity), it is not as reliable as it should be.

Some factors that jeopardize local data are expected and well-understood, while some are not.

Expected causes

  • Low Disk Space: Browsers may delete local extension data under disk space pressure.
  • System Maintenance: Data can be deleted by system maintenance processes, file restores, or disk cleanup tools.
  • User Actions: Some users have a mistaken (yet reasonable) expectation of data persistence that lead them to uninstall an extension, clear browser data, or run cleaner tools without first backing up extension data.

Unfortunately there is not much an extension can do to prevent deletion in these cases. It can only try to account for it after the fact.

Unexpected Causes

User reports and testimony from other extension developers seem to indicate the presence of data corruption bugs in browsers, browser implementations of IndexedDB, and/or third-party IndexedDB libraries.

Unfortunately there is very little information about these kinds of bugs as they tend to be multivariate and difficult to reproduce.

Some evidence suggests that occurrences of data corruption may be correlated with browser updates, extension updates, power outages, or system crashes but there is no hard data known to us definitively implicating any of these as contributing factors.

Another possible contributing factor may be having Session Buddy open in multiple tabs.

Diagnosis

If you encounter a problem while using Session Buddy (eg, blank screen, empty collection list), do the following:

1. Save Data: Open the Session Buddy console and execute the following command: saveData()

This creates a download file of all collections and history.

Open this file in a text editor and check that collection and history data is present. If “collections” or “events” is null, it means there’s a problem accessing the corresponding data store.

2. Save Diagnostics: In the console, execute the following command: saveDiagnostics()

This creates a download file with information that can be used for troubleshooting.

Send this file to support@sessionbuddy.com along with a description of what happened and any errors presented in the console.

3. Restart the Browser: In some cases the browser may recover from data access issues. Restart the browser to see if that resolves the problem. If not, try restarting your device.

Solutions

Workarounds for Data Corruption Bugs

There may be precautions that Session Buddy can take to avoid triggering data corruption bugs.

This kind of solution requires more information to identify contributing patterns. We will continue to research and monitor development resources and Chromium issues and investigate measures as new information comes to light. We will also continue to expand our test suite in pursuit of conditions that reliably produce data failures.

Finally, we’ll continue to analyze diagnostics as they’re shared by impacted users. This kind of data can be extremely useful for identifying failure patterns but it will take some time to accrue a suitable sample size since incidence rates are low and few reporters include this detail.

User Backups

Users can protect themselves by including Session Buddy data folders in scheduled system backups and/or regularly manually backing up Session Buddy data as explained here.

This is, however, not an ideal or convenient solution for most folks.

Education

We’ve posted about data risks and safeguards in the Session Buddy user forum, but we may need to take more proactive measures to educate users about this topic, possibly via app notifications.

We have plans to add a notification for when data usage is approaching quota to alert users of increased risk of data eviction so they can take appropriate steps like exporting a backup or deleting old collections and history.

Local Redundancy

A local data redundancy strategy may help compensate for some data corruption scenarios.

Implementation options are limited to either more IndexedDB database instances or use of the origin private file system (depending on browser support).

This would be a partial solution since redundant data would still be subject to browser control (and therefore things like quota restrictions, users and tools clearing site data, and browser bugs).

Such a solution also adds complexity and has the potential to exacerbate the problem by contributing to local storage usage leading to eviction.

We are exploring the viability of a local redundancy solution that can be implemented in the immediate term.

Cloud Storage

Cloud storage (either complementing or in lieu of local storage) is the ultimate solution to eliminating the risks related to storing data locally.

We are currently developing a cloud offering that, in addition to data reliability, introduces benefits such as data synch across browser profiles and access to collections from mobile devices and public browsers.

Since cloud resources incur costs, this will be a subscription-based feature.

An initial low-cost version of this is being considered to provide data protection through simple automated cloud backup that can be easily restored if needed.

How to Locate Session Buddy v3 Data on Your Computer

June 7, 2024 in Uncategorized

Session Buddy v3 (now deprecated) stored Saved Sessions, Previous Sessions, and settings in a single file on your computer.

To locate that file, follow these steps:

1. Find the current Chrome profile folder

A Session Buddy installation is specific to a Chrome profile.

To find the folder path for the current Chrome profile, see: How to Locate the Current Chrome Profile Folder.

2. Find the Session Buddy database file

Go to the location of the Chrome profile obtained in Step 1.

From this folder, go to the subfolder named databases.

From there, go to the subfolder named chrome-extension_edacconmaakjimmfgnblocblbcdcpbko_0.

This folder contains your Session Buddy v3 database file. The file will have a numeric name like 1 or 2.

If there is more than one such file, the current file is the one with the highest number. This should also be the file with the most recent modification date and largest size.

How to Locate Session Buddy v4 Data on Your Computer

June 7, 2024 in Uncategorized

Session Buddy v4 stores collections, history, and settings in folders on your computer.

To find these folders, follow these steps:

1. Find the current Chrome profile folder

A Session Buddy installation is specific to a Chrome profile.

To find the folder path for the current Chrome profile, see: How to Locate the Current Chrome Profile Folder.

2. Find the Session Buddy database folders

Go to the location of the Chrome profile obtained in Step 1. From this folder, go to the subfolder named IndexedDB.

In the IndexedDB folder, find the subfolder with the following name:

chrome-extension_edacconmaakjimmfgnblocblbcdcpbko_0.indexeddb.leveldb

This is the main Session Buddy database folder.

There MAY also be a subfolder with the following name:

chrome-extension_edacconmaakjimmfgnblocblbcdcpbko_0.indexeddb.blob

This folder also contains Session Buddy data.

When setting up your system backup or manually backing up Session Buddy data, make sure to include the main folder as well as the second folder. Note that even if the second folder is not currently present, it may later be created by Chrome as needed.

When sending data to support for troubleshooting, include both folders with all of their contents in a zip file.

When restoring Session Buddy data from a backup of these folders, follow these steps:

  1. Shut down Chrome completely
  2. Rename the current data folders under the appropriate profile by appending “-backup”
  3. Copy in the restored versions of the folders and all of their contents
  4. Start Chrome and open Session Buddy to validate restoration

Restore Session Buddy v3 data

June 5, 2024 in Uncategorized

When Session Buddy upgrades from v3 to v4 it normally automatically transfers your data.

However, because of recent Chrome deprecations, Session Buddy will be unable to do this automatically if you’re using Chrome 124 or later (more likely now than when v4 first came out). In this case, you’ll need to transfer your data manually.

To do so, follow these steps:

1) Use the Session Buddy v4 migration tool to create a restore file from your Session Buddy v3 data

2) Drop the created restore file into Session Buddy by following the Restore steps outlined here: https://sessionbuddy.com/restore/

Troubleshooting Export

June 1, 2024 in Uncategorized

Session Buddy’s export feature normally allows you to select a folder to save the export file to.

In some cases, however, folder selection may be unsupported or blocked by a permission setting. When this happens, Session Buddy falls back to a file download option. Most of the time this allows the export to proceed without issue, saving the export file to your preferred Downloads folder.

If you prefer to select a destination for your exports or you encounter a problem with the download fallback, there are a couple of things you can try to enable folder selection. Read on…

Enable file picker support

Some browsers such as Brave do not support a file picker feature by default. In these browsers, Session Buddy’s Export dialog displays a “Download export file” button instead of a “Select destination” button.

To enable folder selection in this case, you may need to enable the File System Access API. You can do so by navigating to chrome://flags/#file-system-access-api and selecting Enabled from the dropdown of the highlighted item, then restarting the browser.

Note that while Session Buddy works fine in many browsers including Brave, it is currently only officially supported for use with Chrome. Also, as with any Chrome flag, be sure to familiarize yourself with the implications of enabling this flag.

Allow file editing permission

In some cases, file selection may be blocked by a “File editing” permission.

When this is the case, Session Buddy will display an error after an attempt to select the file destination and present you with an option to download the file instead.

To enable folder selection in this case, you’ll need to explicitly allow the “File editing” permission. To do this, open the web permissions page by right-clicking the Session Buddy icon, then selecting “View web permissions”. Alternatively, you can simply open a tab and copy-paste the following URL into the address bar:

chrome://settings/content/siteDetails?site=chrome-extension%3A%2F%2Fedacconmaakjimmfgnblocblbcdcpbko

Scroll down to the “File editing” line item and change the permission from Block to Ask in the dropdown. Be sure to reload the Session Buddy tab before attempting to export again.

Sometimes this permission is locked by an enterprise policy, preventing you from changing it. If that’s the case you’ll need to contact your Google account administrator for help.

Data Safeguards

April 22, 2024 in Uncategorized

Session Buddy currently stores collections, history, and settings on your computer.

This post explains the limitations inherent to this type of data storage and what you can do to guard against circumstances that can lead to data loss in some rare cases.

Extension local storage vulnerabilities

Although uncommon, data that a browser extension stores on your computer can in some cases get deleted or corrupted due to circumstances beyond the extension’s control.

Some of the factors known to contribute to such data loss are:

  • Low disk space
  • Folders where the data is stored being deleted or corrupted by an external process such as:
    • scheduled backup
    • anti-virus
    • OS “cleaner” (eg, CCleaner, Avast Cleanup)
    • Windows Restore
  • Browsing data or site data being cleared, either manually or automatically
  • The extension being reset, disabled, or uninstalled by the browser
  • Browser profile corruption, possibly caused by a browser update or power outage
  • A browser or OS crash
  • Bugs in the browser’s implementation of IndexedDB
  • The usual risk factors associated with storing data in a single location, such as hardware failure and device theft.

What you can do to protect your Session Buddy data

An opt-in cloud storage feature is currently in the works. This will, among other benefits, be the easiest and most reliable way to eliminate the risks related to storing data locally.

In the meantime, we recommend you follow the measures outlined below to give you the peace of mind of a data recovery option should you need it.

System backups

Include the local Session Buddy data folders in your scheduled system backups.

If you do not already have a process in place to regularly back up your files, either to an external drive or to the cloud, you absolutely should. Trust us on this one.

Manual backups

Although less convenient, we recommend setting a daily, weekly, or monthly reminder to manually create a backup by clicking on the Session Buddy gear menu, then clicking Export.

An export file can be used to restore a new installation of Session Buddy through the Restore feature.

Mac Keyboard Shortcut Bug

March 20, 2024 in Uncategorized

A recent Session Buddy update mistakenly assigned the cmd+b keyboard shortcut to opening a new Session Buddy tab.

This is almost certainly not what you want, since cmd+b is a common keyboard shortcut in lots of other applications.

To reset this keyboard shortcut:

  1. In Session Buddy, click on the gear menu in the upper right-hand corner, then click “Settings

  2. In the Settings dialog, click the “Other” tab

  3. Click the “Open extension shortcuts” button. This opens the Chrome extension keyboard shortcuts page.

  4. Scroll to the Session Buddy card and click the pencil icon next to the shortcut labeled “Activate the extension

  5. Click outside of the shortcut text box and make sure the shortcut reads “Not set

Session Buddy v4 FAQ

March 13, 2024 in Uncategorized

Session Buddy v4 brought a lot of important new features, but also some changes to what long-time Session Buddy users may have been used to.

While many of these changes were necessary, we could have done a better job communicating them and explaining why they were being made.

We’ve been listening carefully to your feedback since v4 landed and have been busy rolling out follow-up releases that address v3 regressions and other concerns.

We’re committed to continuing to actively engage with our user community to help us understand what remains to be done and how to further improve your experience.

This page was created to answer some of your most common questions and concerns about Session Buddy v4. If there’s anything you’d like to discuss that’s not addressed below, please feel free to post in the user forum. We read and make our best effort to respond to every inquiry.

Where did Previous Sessions go?

Previous Sessions have been moved to the History panel. You can access it by clicking on the This Browser tile, then clicking the History button on the right.

What if my data did not automatically transfer from v3?

The upgrade to Session Buddy v4 includes an automatic data migration from a deprecated database technology to the modern standard.

While most of our users were able to take advantage of this automatic data migration, those upgrading after having upgraded to Chrome 124 (much more likely now than when Session Buddy v4 was first released) will need to transfer data manually due to Chrome deprecations.

To transfer your v3 data manually, follow the steps outlined here: https://sessionbuddy.com/restore-v3-data/

Where is my favorite feature from v3?

The initial release of Session Buddy v4 left behind some features from v3.

These omissions were due in part to time pressure from impending Chrome deprecations that would have caused a significant number of users to lose data had the release been delayed.

We’ve already issued multiple follow-up releases that add back these missing features and are actively continuing to address remaining regressions.

Why does CMD+B open Session Buddy?

This was a mistake. An immediate follow-up (v4.0.1) was released to fix this.

In some cases the shortcut binding may still need to be reset manually. If necessary, follow these instructions: https://sessionbuddy.com/mac-shortcut-bug/

Why can I no longer just click an “x” to close a tab?

Session Buddy v4 introduced the ability to select tabs and links. This enables powerful new capabilities such as opening, closing, or copying multiple tabs at once. As part of this new feature, the “x” was replaced by a checkbox to facilitate selection of individual items.

In response to demand, a follow-up release (v4.0.2) added an opt-in setting (under Settings > Other) to revert this change to once again allow tabs/links to be closed/deleted with a single-click.

A future release will likely remove the need for this setting and show both an “x” and a checkbox on each item by default.

Note that regardless of whether the “x” is present or not, selected tabs can always be closed either by hitting the Delete key or right-clicking them and clicking Delete.

Pro tip: holding the Shift key while closing/deleting suppresses confirmation (if enabled). You can also disable these confirmations altogether in settings.

Why does opening lots of tabs from Session Buddy sometimes take a long time?

Prior to v4.0.3, tab loading was automatically optimized if a lot of tabs were being opened at once. Optimizations included suspending tabs and delaying tab load.

After v4.0.3, these optimizations were disabled by default. They can be opted into as needed in Settings > Tabs.

If you choose to turn on tab opening optimization, there are 2 localStorage values that can be added to tweak its behavior:

nxs.experiment.optimized-open-threshold : number of tabs opened after which delay and suspending optimizations kick in, default 60

nxs.experiment.optimized-open-delay : number of ms to delay each open, kicks in after threshold number of tabs have been opened, default 100

To edit localStorage:

  1. Open an SB tab
  2. Hit F12 to open dev tools
  3. Click on the Application tab
  4. Expand the Local storage item on the left
  5. Select the chrome-extension item underneath
  6. Double-click in the area to the right to create a new entry
  7. Enter the relevant nxs.experiment key above
  8. Hit Tab
  9. Enter a numeric value
  10. Hit Tab or Enter

Google “chrome devtools localstorage” for more info.

Why does folder selection fail when exporting?

In Session Buddy v4, the export feature normally allows for the selection of a folder to save the export file to.

In some cases, however, folder selection may be unsupported or blocked by a permission setting.

When this happens, Session Buddy as of v4.0.4 falls back to a download option to allow the export to proceed, saving the export file to your preferred Downloads folder.

This limitation primarily affects users of the Brave browser since Brave disables the File System Access API by default.

To learn about enabling folder selection if blocked, see: https://sessionbuddy.com/troubleshooting-export/

Why are tab counts no longer displayed on tiles?

Counts on collection and history tiles were eliminated because of technical complexity related to tab filtering and ultimate support for cloud-based collections, our most-requested feature.

We may bring this back in some form based on feedback.

We recommend using expressive collection titles when possible to help identify them rather than relying on tab counts.

Where did the Backup feature go?

Export now also serves backup use cases.

Restore

March 12, 2024 in Uncategorized

When you re-install Session Buddy, you can transfer your collections and history from an export file created with a previous install by using the Restore feature. You can find Restore in the Session Buddy gear menu.

Restore presents a dialog that you can drag an export file into. After you drop the file into the gray area, Session Buddy will check it and display the number of collections and history items found.

Once Session Buddy is done checking the file, click the “Restore n items” button.

Wait for the restore to finish. After closing the dialog, your restored collections and history will appear in Session Buddy.

Restore Session Buddy v3 data

Session Buddy automatically tries to transfer your data from the previous version when it upgrades to v4. However, because of Chrome deprecations, Session Buddy will be unable to do this automatically after Chrome v124.

If you miss the auto-migration window or run into problems during the upgrade, you can still restore your Session Buddy v3 data manually. To do so, use the Session Buddy v4 migration tool.

This tool walks you through a few steps to create a file that can be dropped into Session Buddy v4 following the Restore steps above.

Why not use Import?

While Restore is intended for initializing a new install, the Import feature is used more generally for transferring collections between Session Buddy on different browsers or browser profiles.

Restore works similarly to Import, but there are a few key differences:

  • Restore includes both collections and history. Import only includes collections.
  • Restore will only create collections that have not already been restored. Import, on the other hand, will duplicate collections when the same file is imported again.
  • Restore preserves pinned collections, whereas Import removes pins from collections.