Search Support

Avoid support scams. We will never ask you to call or text a phone number or share personal information. Please report suspicious activity using the “Report Abuse” option.

Learn More

"Restore Session" page after a crash is not responding, how can I get it to reset?

  • 25 replies
  • 1 has this problem
  • 1 view
  • Last reply by cor-el

more options

My computer crashed today while I was using several tabs on both IE and FF. I'm not sure what caused the crash, but everything is working fine except Firefox. Now every time I try to restart FF, it starts by attempting to go to about:sessionrestore, then goes to "Not Responding". If I'm lucky, it advances on its own to the page trying to "Restore Session" - but it again goes gray if I try to click anything - then stays unresponsive indefinitely (I left it for about an hour and came back to the same thing). If I force close, the same thing happens again. I have the spinning circle, and I'm unable to open or close any tabs. Right clicking does nothing either.

I uninstalled and re-installed FF, but it's still doing the same thing. I have no idea what to do. My open tabs were Yahoo mail, a forum, and Pandora.

If I open Task Manager, I can see that it shoots up to 100% of disk space being used when FF is open. And now hhhalf my screen is black. It's as though FF is what caused the crash to begin with

And now I've lost half my screen, so I apologize for any typos!. This seems really bad.

Thanks for any help you can offer.

My computer crashed today while I was using several tabs on both IE and FF. I'm not sure what caused the crash, but everything is working fine except Firefox. Now every time I try to restart FF, it starts by attempting to go to about:sessionrestore, then goes to "Not Responding". If I'm lucky, it advances on its own to the page trying to "Restore Session" - but it again goes gray if I try to click anything - then stays unresponsive indefinitely (I left it for about an hour and came back to the same thing). If I force close, the same thing happens again. I have the spinning circle, and I'm unable to open or close any tabs. Right clicking does nothing either. I uninstalled and re-installed FF, but it's still doing the same thing. I have no idea what to do. My open tabs were Yahoo mail, a forum, and Pandora. If I open Task Manager, I can see that it shoots up to 100% of disk space being used when FF is open. And now hhhalf my screen is black. It's as though FF is what caused the crash to begin with And now I've lost half my screen, so I apologize for any typos!. This seems really bad. Thanks for any help you can offer.

All Replies (20)

more options

Could you try starting Firefox up with a blank page? I'm not sure whether that will bypass the crash recovery, but it's worth a try.

Use the Windows "Run" dialog, which you can call up using either:

  • Windows key + r
  • icon on the lower part of the Start page with all the programs, possibly in the Accessories category

In the run dialog, type or paste

firefox.exe "about:blank"

and press Enter to run that.

Can you get a blank a page?

more options

Thanks for your quick response!

I am able to get a new blank tab following your directions above, but the original tab trying to restore me is still there too, and it then freezes them both up.

more options

Was Firefox completely closed when you tried it?

If that doesn't work, you may need to remove the sessionstore.js file which Firefox is using to restore your session. Here is where you get to that:

In the address bar of a Windows Explorer window, or again in the Run dialog, type or paste the following and press Enter:

%APPDATA%\Mozilla\Firefox\Profiles

Usually there's just one folder here, so double-click into that. If there are multiple folders, double-click into the most recently used one.

When Firefox exits, a file named sessionstore.js should be created here.

If you find that, rename it to sessionstore.old.

If you don't find it, double-click into the sessionstore-backups folder and look for recovery.js and recovery.bak. Rename recovery.js to recovery.old, and delete recovery.bak.

The next time Firefox starts up, it should not try to restore your previous session. And then hopefully things will get back to normal...

more options

Yes, it was completely closed. It's nearly impossible to use any program on the computer when it's open - it even causes task manager to become unresponsive - and it's a beast to close back down.

Within the folder, I have a sessionstore.bak and sessionstore.bak-20140923175406. There is also a sessionCheckpoints.json with today's date (even though I did not visit Checkpoints today) but no sessionstore.js

There is also a folder - sessionstore-backups, and within that I have the following: previous recovery.bak upgrade and a ton of upgrade.js with different numbers behind them, but none for today's date

Are any of these what I need? Do I still delete recovery.bak within this second folder even though I don't have a recovery.js to change the title of?

more options

Just to confirm, does your Firefox hide the .js extension on previous.js and the various upgrade files? In that case, you would be looking for a file named recovery with a type of JScript to rename to recovery.old, and similarly with any sessionstore file of type JScript.

Or maybe it's easiest to turn off the Windows feature of hiding certain file extensions. This article has the steps: http://windows.microsoft.com/en-us/windows/show-hide-file-name-extensions

more options

Thank you - yes it was hiding some info, I followed the steps in that article, and now within the sessionstore-backups folder I have: previous.js recovery.bac recovery.js and all the upgrade.js's

So I will change recovery.js to recovery.old, delete recovery.bac - and report back. :)

more options

Hmm, no it's still trying to open about:sessionrestore and then freezing up. I also retried the blank page as you suggested above, with the same result.

Do I need to restart my computer? I restarted it earlier today after the problems started, but not this evening.

more options

And there's no sessionstore.js at the main level, either?

There must be another file I'm forgetting about. Hopefully someone else will remember what it is.

more options

No, just the two bak files at the main level.

Thank you so much for your help to this point, I really appreciate it. It is late here, so if no one else pops in shortly, I will try again tomorrow. :)

more options

There IS a folder titled Crashes, and within it:

store.json.mozlz4

and it shows todays date, but I have no clue if that's anything, just throwing it out there!

more options

Alright, I'm back online and ready to try again if anyone's free. :)

more options

Warning Unresponsive Script Script: chrome://global/content/bindings/popup.xml:255

If I hit debug, this is the text - I have left it open in case there's anything that can be done.

/* This Source Code Form is subject to the terms of the Mozilla Public

* License, v. 2.0. If a copy of the MPL was not distributed with this
* file, You can obtain one at http://mozilla.org/MPL/2.0/. */

"use strict";

const {classes: Cc, interfaces: Ci, utils: Cu} = Components;

Cu.import("resource://gre/modules/Services.jsm");

var gStateObject; var gTreeData;

// Page initialization

window.onload = function() {

 // pages used by this script may have a link that needs to be updated to
 // the in-product link.
 let anchor = document.getElementById("linkMoreTroubleshooting");
 if (anchor) {
   let baseURL = Services.urlFormatter.formatURLPref("app.support.baseURL");
   anchor.setAttribute("href", baseURL + "troubleshooting");
 }
 // wire up click handlers for the radio buttons if they exist.
 for (let radioId of ["radioRestoreAll", "radioRestoreChoose"]) {
   let button = document.getElementById(radioId);
   if (button) {
     button.addEventListener("click", updateTabListVisibility);
   }
 }
 // the crashed session state is kept inside a textbox so that SessionStore picks it up
 // (for when the tab is closed or the session crashes right again)
 var sessionData = document.getElementById("sessionData");
 if (!sessionData.value) {
   document.getElementById("errorTryAgain").disabled = true;
   return;
 }
 gStateObject = JSON.parse(sessionData.value);
 // make sure the data is tracked to be restored in case of a subsequent crash
 var event = document.createEvent("UIEvents");
 event.initUIEvent("input", true, true, window, 0);
 sessionData.dispatchEvent(event);
 initTreeView();
 document.getElementById("errorTryAgain").focus();

};

function isTreeViewVisible() {

 let tabList = document.getElementById("tabList");
 return tabList.hasAttribute("available");

}

function initTreeView() {

 // If we aren't visible we initialize as we are made visible (and it's OK
 // to initialize multiple times)
 if (!isTreeViewVisible()) {
   return;
 }
 var tabList = document.getElementById("tabList");
 var winLabel = tabList.getAttribute("_window_label");
 gTreeData = [];
 gStateObject.windows.forEach(function(aWinData, aIx) {
   var winState = {
     label: winLabel.replace("%S", (aIx + 1)),
     open: true,
     checked: true,
     ix: aIx
   };
   winState.tabs = aWinData.tabs.map(function(aTabData) {
     var entry = aTabData.entries[aTabData.index - 1] || { url: "about:blank" };
     var iconURL = aTabData.attributes && aTabData.attributes.image || null;
     // don't initiate a connection just to fetch a favicon (see bug 462863)
     if (/^https?:/.test(iconURL))
       iconURL = "moz-anno:favicon:" + iconURL;
     return {
       label: entry.title || entry.url,
       checked: true,
       src: iconURL,
       parent: winState
     };
   });
   gTreeData.push(winState);
   for (let tab of winState.tabs)
     gTreeData.push(tab);
 }, this);
 tabList.view = treeView;
 tabList.view.selection.select(0);

}

// User actions function updateTabListVisibility() {

 let tabList = document.getElementById("tabList");
 if (document.getElementById("radioRestoreChoose").checked) {
   tabList.setAttribute("available", "true");
 } else {
   tabList.removeAttribute("available");
 }
 initTreeView();

}

function restoreSession() {

 document.getElementById("errorTryAgain").disabled = true;
 if (isTreeViewVisible()) {
   if (!gTreeData.some(aItem => aItem.checked)) {
     // This should only be possible when we have no "cancel" button, and thus
     // the "Restore session" button always remains enabled.  In that case and
     // when nothing is selected, we just want a new session.
     startNewSession();
     return;
   }
   // remove all unselected tabs from the state before restoring it
   var ix = gStateObject.windows.length - 1;
   for (var t = gTreeData.length - 1; t >= 0; t--) {
     if (treeView.isContainer(t)) {
       if (gTreeData[t].checked === 0)
         // this window will be restored partially
         gStateObject.windows[ix].tabs =
           gStateObject.windows[ix].tabs.filter((aTabData, aIx) =>
                                                  gTreeData[t].tabs[aIx].checked);
       else if (!gTreeData[t].checked)
         // this window won't be restored at all
         gStateObject.windows.splice(ix, 1);
       ix--;
     }
   }
 }
 var stateString = JSON.stringify(gStateObject);
 var ss = Cc["@mozilla.org/browser/sessionstore;1"].getService(Ci.nsISessionStore);
 var top = getBrowserWindow();
 // if there's only this page open, reuse the window for restoring the session
 if (top.gBrowser.tabs.length == 1) {
   ss.setWindowState(top, stateString, true);
   return;
 }
 // restore the session into a new window and close the current tab
 var newWindow = top.openDialog(top.location, "_blank", "chrome,dialog=no,all");
 var obs = Cc["@mozilla.org/observer-service;1"].getService(Ci.nsIObserverService);
 obs.addObserver(function observe(win, topic) {
   if (win != newWindow) {
     return;
   }
   obs.removeObserver(observe, topic);
   ss.setWindowState(newWindow, stateString, true);
   var tabbrowser = top.gBrowser;
   var tabIndex = tabbrowser.getBrowserIndexForDocument(document);
   tabbrowser.removeTab(tabbrowser.tabs[tabIndex]);
 }, "browser-delayed-startup-finished", false);

}

function startNewSession() {

 var prefBranch = Cc["@mozilla.org/preferences-service;1"].getService(Ci.nsIPrefBranch);
 if (prefBranch.getIntPref("browser.startup.page") == 0)
   getBrowserWindow().gBrowser.loadURI("about:blank");
 else
   getBrowserWindow().BrowserHome();

}

function onListClick(aEvent) {

 // don't react to right-clicks
 if (aEvent.button == 2)
   return;
 var cell = treeView.treeBox.getCellAt(aEvent.clientX, aEvent.clientY);
 if (cell.col) {
   // Restore this specific tab in the same window for middle/double/accel clicking
   // on a tab's title.

//@line 185 "c:\builds\moz2_slave\rel-m-rel-w32_bld-000000000000\build\browser\components\sessionstore\content\aboutSessionRestore.js"

   let accelKey = aEvent.ctrlKey;

//@line 187 "c:\builds\moz2_slave\rel-m-rel-w32_bld-000000000000\build\browser\components\sessionstore\content\aboutSessionRestore.js"

   if ((aEvent.button == 1 || aEvent.button == 0 && aEvent.detail == 2 || accelKey) &&
       cell.col.id == "title" &&
       !treeView.isContainer(cell.row)) {
     restoreSingleTab(cell.row, aEvent.shiftKey);
     aEvent.stopPropagation();
   }
   else if (cell.col.id == "restore")
     toggleRowChecked(cell.row);
 }

}

function onListKeyDown(aEvent) {

 switch (aEvent.keyCode)
 {
 case KeyEvent.DOM_VK_SPACE:
   toggleRowChecked(document.getElementById("tabList").currentIndex);
   break;
 case KeyEvent.DOM_VK_RETURN:
   var ix = document.getElementById("tabList").currentIndex;
   if (aEvent.ctrlKey && !treeView.isContainer(ix))
     restoreSingleTab(ix, aEvent.shiftKey);
   break;
 }

}

// Helper functions

function getBrowserWindow() {

 return window.QueryInterface(Ci.nsIInterfaceRequestor).getInterface(Ci.nsIWebNavigation)
              .QueryInterface(Ci.nsIDocShellTreeItem).rootTreeItem
              .QueryInterface(Ci.nsIInterfaceRequestor).getInterface(Ci.nsIDOMWindow);

}

function toggleRowChecked(aIx) {

 function isChecked(aItem) {
   return aItem.checked;
 }
 var item = gTreeData[aIx];
 item.checked = !item.checked;
 treeView.treeBox.invalidateRow(aIx);
 if (treeView.isContainer(aIx)) {
   // (un)check all tabs of this window as well
   for (let tab of item.tabs) {
     tab.checked = item.checked;
     treeView.treeBox.invalidateRow(gTreeData.indexOf(tab));
   }
 }
 else {
   // update the window's checkmark as well (0 means "partially checked")
   item.parent.checked = item.parent.tabs.every(isChecked) ? true :
                         item.parent.tabs.some(isChecked) ? 0 : false;
   treeView.treeBox.invalidateRow(gTreeData.indexOf(item.parent));
 }
 // we only disable the button when there's no cancel button.
 if (document.getElementById("errorCancel")) {
   document.getElementById("errorTryAgain").disabled = !gTreeData.some(isChecked);
 }

}

function restoreSingleTab(aIx, aShifted) {

 var tabbrowser = getBrowserWindow().gBrowser;
 var newTab = tabbrowser.addTab();
 var item = gTreeData[aIx];
 var ss = Cc["@mozilla.org/browser/sessionstore;1"].getService(Ci.nsISessionStore);
 var tabState = gStateObject.windows[item.parent.ix]
                            .tabs[aIx - gTreeData.indexOf(item.parent) - 1];
 // ensure tab would be visible on the tabstrip.
 tabState.hidden = false;
 ss.setTabState(newTab, JSON.stringify(tabState));
 // respect the preference as to whether to select the tab (the Shift key inverses)
 var prefBranch = Cc["@mozilla.org/preferences-service;1"].getService(Ci.nsIPrefBranch);
 if (prefBranch.getBoolPref("browser.tabs.loadInBackground") != !aShifted)
   tabbrowser.selectedTab = newTab;

}

Too long, had to cut off...

more options

And having left this open, I am also able to open a new tab now. Maybe it has finally worked its way out.

I will leave the debug thing open in case anyone wants to do anything with that though.

more options

No, still having major problems.

I have tried opening Firefox in Safe Mode and can't look at anything because it immediately freezes.

I uninstalled Google Chrome, and the xml:255 has changed to xml:70, but the constant freezing remains.

Please let me know if I should start a new thread for help with this popup. Thanks.

more options

Is this new script error related to browsing a web page, or is it a new problem with the session restore screen discussed earlier?

I'm actually don't know what store.json.mozlz4 is for. If you want to try moving or renaming that file, maybe it would help?

Note: The word chrome: actually refers to a built-in page in Firefox's program folder and not to a Google product (Mozilla has always used "chrome" to refer to the parts of the browser outside the "content" and Google apparently was very inspired by this).

more options

Still the session restore issue. Usually it opens and freezes, but if I wait long enough, this pop up appears, so I think it must be connected.

Good to know on the chrome thing, and that explains why uninstalling Chrome really didn't help.

Did I read somewhere about starting a new profile - is that an option for me, or will this problem just keep following me. I'm ready to wipe the whole thing out at this point if that's what it takes.

more options

Here's how to create a new profile. You can manually bring over key settings files like bookmarks, history, saved passwords, but it's quite a bit of work to reinstall extensions.

Create a new Firefox profile

This is in addition to and does not replace your existing settings.

A new profile will have your system-installed plugins (e.g., Flash) and extensions (e.g., security suite toolbars), but no themes, other extensions, or other customizations. It also should come with completely fresh settings databases and a fresh cache folder.

Exit Firefox and start up in the Profile Manager using Start > search box (or Run) -- type or paste the following and press Enter:

firefox.exe -P

Don't delete anything here.

Any time you want to switch profiles, exit Firefox and return to this dialog.

Click the Create Profile button, assign a name like April17, and ignore the option to change the folder location. Then start Firefox in the new profile you created.

This article describes key files that you might want to copy over: Recovering important data from an old profile.

To open the new profile folder in Windows Explorer, you can use the support information page. Either:

  • "3-bar" menu button > "?" button > Troubleshooting Information
  • (menu bar) Help > Troubleshooting Information
  • type or paste about:support in the address bar and press Enter

In the first table on the page, click the "Show Folder" button.

To access your older profile folder(s), you can go "up" a level in Windows Explorer to the Profiles folder. Note that you should exit Firefox before replacing any files.


When returning to the Profile Manager later, you might be tempted to use the Delete Profile button on your older profile. But you might still need to copy stuff from it later that we overlooked now, so I recommend resisting the temptation.

more options

Ok thanks for that! Before I try it - I just right clicked on the icon and saw the option to troubleshoot compatibility. It ran and just finished, saying "Incompatible Program"

Does this get me anywhere?

more options

Generally speaking, you get the best results not using any of the compatibility options. In other words, right-click the Firefox icon > Properties > Compatibility tab, and make sure nothing is set or selected here so Firefox uses the full capabilities of your OS.

more options

Alright, I've created a new profile and Firefox is now able to open, squeaky clean. :)

I have copied over places.sqlite, places.sqlite-shm, and places.sqlite-wal using the directions in the link you provided, but none of my bookmarks or history will show up in the new Firefox. There is a file titled places.sqlite.corrupt in the new profile that does not exist in the default profile, and it has the same time stamp as my copied and pasted places.squlite

Firefox is closed when I do the copy, then I reopen to check if it worked - have I done something wrong or missed something?

I have not attempted to copy over any passwords yet.

  1. 1
  2. 2