31

I filled out a lengthy form on a webpage which rejected my submission due to a server error. I can't seem to recover the form input.

Is there any way in Firefox to look into caches, history, etc. to recover this information?

9 Answers 9

10

My method was tested in an emergency case (lost Facebook comment). It needs a third party tool – ProcessHacker. It's only for Windows – for a Linux method, check that question. It should work with every browser, not only Firefox.

There are two methods. First is more user friendly, but if PC would crash, you'd lose data. Second is more fail-safe, but needs an additional tool. With second you'd get a file you can give to some expert, if that tutorial would be too difficult. You can do Method II, steps 1&2 to be safe and then Method I to make it easier. I used Method I.

That's the exact list of steps I took:

Method I

  1. The first thing to do is to pause the process. This is critical for success. I opened ProcessHacker (PH), found firefox.exe on the list (you can click on the "Name" column to get rid of the tree view and get a list view) and from the context menu I used "Suspend". Then it would look like Firefox is frozen, so if Windows would ask you about terminating not responding process, don't do it! It's alive, just sleeping.

  2. Double click on the firefox.exe row or choose "Properties" from the context menu of firefox.exe.

  3. Go to the "Memory" tab and click on the "Strings..." button in the top-right corner.

  4. I used default settings ([✓] is checked checkbox, [ ] is unchecked) – Min. len.: 10; [✓] Detect Unicode; Search in [✓] Private / [ ] Image / [ ] Mapped. Click on the "OK" button.

  5. After a while (up to minute, but probably a few seconds) you'd get all strings found. With such settings I've now over 700k strings. Check every one searching for the lost text. Just kidding! Go to the next point :)

  6. Click on the bottom-left "Filter" and choose menu item that fits you the best. I used "Contains (case insensitive)".

  7. Enter some word that was in your lost text. Word because some strings could be saved, e.g., as "foo bar". The longer and more unique word, the fewer results you'd get (so it will be easier). If you don't get results, try another word. I had my comment in two parts of the memory – in one it was full, in other just second half.

  8. Look through the results. Most strings will be visible with null character after every char, e.g., foobar will be f.o.o.b.a.r (hex 66 00 6F 00 6F 00 62 00 61 00 72). Don't worry about it; it's the Unicode thing. If you'd find your text click on the "Save..." button. My comment was looking like part of HTML, i.e., it had <div> and <span> tags around.

  9. Open the saved file in an editor that supports Unicode. I don't know about built-in Notepad, but it should work. I used Notepad++.

  10. Find the text, copy the needed part. Say "hooray". You may now right click on firefox.exe row from the main window and choose "Resume".

Method II

  1. Repeat step 1 from Method I.
  2. Find firefox.exe row, right click on it and choose "Create dump file..." from the context menu.
  3. Use some editor which supports loading big files. Notepad++ should handle it, but you need to turn off syntax coloring and spell checking. Examples: HxD (freeware, IMO better), wxHexEditor (FLOSS).
  4. Go to step 10 from Method I.
6
  • Smart approach! Didn't work for me today (never make long edits in Gitlab on-line tool ...) but I will keep the technique (and the nice ProcessHacker tool) under the pillow.
    – user146539
    Feb 13, 2017 at 0:08
  • You can create a dump file from Task Manager, see this answer. So no need for 3rd party tool like ProcessHacker. Jun 7, 2017 at 17:35
  • Thanks, David. I still think one should suspend process ASAP and answer you linked doesn't say anything about it. In case of mistake suspending would help a lot. Also there's string search function in PH. As chars are often padded with 00h (null), you still need some editor to find text (Notepad won't do the trick), so not entirely "without 3rd party". Meanwhile I lost YouTube and Disqus comment (i.e. heavy JavaScripted and dynamic pages) - it worked again, but it's not 100% sure method, as Tibo shows.
    – Krzysiu
    Jun 13, 2017 at 16:20
  • if there are several chrome process running, is there a way to know which one we should work with?
    – JinSnow
    Jul 11, 2017 at 11:57
  • 1
    What a great answer. Thank you for introducing me to ProcessHacker. I failed to find what I was looking for with the default filter settings but succeeded by marking all checkboxes. Of course, search results increased by a lot but applying multiple filters in succession narrowed it down. Ah, saved me from rewriting some lost e-mails. (+1) Feb 9, 2019 at 17:29
6

Whew! I figured out a solution -- I was able to hit the "back" and "forward" button with the "Live HTTP Headers" extension capturing incoming/outgoing traffic, and the form information was part of a POST response. (Firefox will resend form input, not sure where that's stored, but doesn't have any obvious built-in way to display it to users)

9
  • 2
    I think it's stored in RAM, since you can hit "Back" to get back to the form with your data filled in, but I've never heard of Firefox restoring those form values after you close and restart the browser.
    – David Z
    Sep 1, 2010 at 18:47
  • You might want to have Lazarus [ addons.mozilla.org/en-US/firefox/addon/6984 ] installed, if something like this happens again.
    – Sathyajith Bhat
    Sep 1, 2010 at 21:15
  • @Sathya: consider posting as a separate answer, I'd vote it up.
    – Jason S
    Sep 25, 2010 at 16:31
  • 1
    Maybe this wasn't true three years ago, but Firefox's built-in web developer tools currently have facilities which let you extract the information in a similar way. Just answered here.
    – sh1
    Dec 7, 2013 at 9:08
  • 1
    I have another idea. Reloading the page, with examining the headers... I am going to post it as an answer. Apr 15, 2014 at 12:05
4

I found a new addon that can be used to recover lost postdata: Form History Control

The author claims:

This plugin also stores text from editor fields as you type, so you never have to loose your work when disaster strikes. Recover your lost work after session timeouts, network failures, browser crashes, power failures and all other things that will destroy the hard work you just put into writing that important email, essay or blog post.

EDIT: Oh, it indeed saved this post. :)

2
  • This extension is a (very) nice idea. But it is too complicated. This extension proudly says that it "auto-saved text entered in any form". Does it save "contenteditable" user-entered data ? For instance, Disqus comments and Wikipedia WYSIWYG edits. Aug 19, 2014 at 9:19
  • @NicolasBarbulesco I don't know, try it, then tell the developer if it doesn't work. I suppose it works for input and textarea fields only, and form postdata. The primary reason I downloaded it because many stupid forums simply log you out if you are writing a post for too long, eating your whole writing...
    – Calmarius
    Aug 19, 2014 at 10:47
4

Modern versions of Firefox have Developer Tools on board that can be used for this. Press Ctrl+Shift+E (before Firefox 55: Ctrl+Shift+Q) to bring up the Network tool, press F5 to reload the page (confirm the warning that the content will be resubmitted, we want exactly this to happen) and select the (probably) topmost line in the Network tool. It should show POST as method.

On the right-hand side a set of tabs appears. The one we are interested in, "Headers", should already be open. Click Edit and Resend to get the full request contents. The Request Body field contains the full request data in url-encoded form. Run it through a decoder like this one to get your data back.

4
  • 1
    Exactly this. Note: some websites encode the contents differently, in my case it replaced spaces with + and newlines with \r\n.
    – user31389
    Dec 5, 2018 at 11:02
  • ctrl+shift+q ... as in completely quit out of firefox. Nice. Thanks. Exactly what I dreaded might happen.
    – user224219
    Jul 23, 2020 at 20:50
  • @user224219 Mozilla has changed the shortcut since I wrote this answer. Updated.
    – Roland W
    Jul 24, 2020 at 18:39
  • 1
    These shortcuts... a mess! There's a page that lists them all - why not use that?
    – Seamus
    Sep 14, 2020 at 2:56
2

Another possible solution to recover your data is to make a core dump of Firefox (assuming you are using it under Linux or similar). See this answer for more details: https://superuser.com/a/236400/180675

1

I'm afraid form contents aren't cached... Regular input fields (single line) may be saved with auto fill, yet text area's (multiple lines, the one that you probably typed in) aren't.

1

The Web browser definitely has the form data in memory. The difficulty is : How to retrieve this data ?

Here is my idea. I have not tried it. On paper, it works. This answer applies to Firefox and to other Web browsers.

In short : Reload the page, while examining the headers.

  1. Set up the machinery. We need a machinery to examine the HTTP traffic sent from the Web browser.
    • The best choice is the extension LiveHTTPHeaders for Firefox. But I think that installing this extension needs a restart of Firefox. Don't restart Firefox, of course ! It would be nice to be able to install this machinery without restarting Firefox. Otherwise, you just need to have this extension installed beforehand. If need arises, simply use a time machine. ;-)
    • If you cannot have the machinery ready in the Web browser, there is another option. This option is heavier. But its mighty strength is that it works for all Web browsers, and without restarting them. Install a simple Web server, or set up a proxy server (like Squid), on your machine. Make sure that your server logs the inbound traffic, with the full headers. And place a rule in the OS for redirecting all outbound requests towards 127.0.0.1. This can be done with a hosts file.
  2. Test the machinery. Create a new window in your Web browser. Write some text in Wikipedia here, and click Preview. Then verify that in your machinery you see your written text. If your machinery is the server option, you have to toggle off the redirection rule to load the Wikipedia form, and to toggle it on afterwards.
  3. To reload the page, right-click where the form was, and choose Reload. This is important. In some webmails, this will reload only the frame where the form was. Here we want to reload only as little as possible. If you click the button Reload in the address bar or in the button bar, or if you press Apple R, you risk reloading the whole page, and in some webmails this is shooting yourself in the foot.
  4. Normally, the Web browser will ask you : Do you want to send again the form data ? If you get this question, this is a good sign. Choose Send again.
  5. Examine the POST data sent, with the machinery set up in the step 1. Here you shall find your wanted data.
  6. Come tell us here that this solution has worked !
1
  • This needs updating, now use Developer Tools instead of installing extensions.
    – user31389
    Dec 5, 2018 at 11:05
1

*** Correction: although the below does work in Firefox and Chrome, the snapshot in Firefox produces a (gzip'd) binary file. So for now this approach works only in Chrome : (

For both Firefox and Chrome, I think a much easier way compared to an actual core dump of a system process is to use Developer Tools.

Go to the Memory tab (used to be named "Profiles" in Chrome), then take a Snapshot and save it to a file (it's just text). Then search the file for some word that you know you had written in your form – that's probably the fastest way to find the entire content.

Screenshot of Firefox Developer Tools – Memory tab

I just tested it on Chrome in a page where a dynamic form (JavaScript) messed up by itself and lost all the text I had written. It was still in memory and I could recover it even if I hadn't submitted it yet!

See https://developer.mozilla.org/en-US/docs/Tools/Memory and https://developers.google.com/web/tools/chrome-devtools/memory-problems/heap-snapshots for more details.

3
  • in Firefox, the file is just compressed with gzip, so a simple zcat xxx.fxsnapshot allows you to get the contents.
    – vaab
    Apr 7, 2018 at 8:29
  • 2
    Thanks @vaab it is indeed gzip'd, but after uncompressing it's still a binary file. gunzip -c (equivalent to zcat on Mac) returned mainly question marks... I ran strings on it and I could get some info, but I don't know if a full form content could be recovered that way.
    – Kamal
    Apr 7, 2018 at 15:07
  • Just tried this in Microsoft Edge v90 and it created the heap snapshot text file, but it didn't have my lost text. However, in the F12 --> Network --> Headers tab, there it was ! In the Form Data section. Saved.
    – Amit Naidu
    May 20, 2021 at 3:21
0

Although I too am a Firefox user, this afflicted me today while I was inadvertently using IE Edge v90, which is built on Chrome. I got a "Session Expired" page in Confluence after working on a post for 2 hours. Thanks Atlassian. This describes how I recovered my submission without any plugins, add-ons, or third-party tools. Summary:

  1. Press F12 to open Developer Tools.
  2. Go to the Network tab
  3. If there is a page with populated with 40x error status, click on it, otherwise refresh.
  4. Go to the Headers sub-tab and scroll down to find the Form Data section.

Story

I first pressed the back button expecting to find the same filled in textbox, as Firefox often behaves. But it was empty and pressing the forward button again as suggested here simply showed the same Session Expired page. Even refreshing the page still showed the same error, even though the form resubmit warning popped up. At this point I assumed that all this interaction would surely have overwritten any cached form data I was hoping to salvage. I was prepared to search through a process memory dump at this point.

Next, I pressed F12 to open developer tools, clicked on the Network tab and again refreshed the page. It populated content and showed a document in red (called answerquestion.action in my case) with a 403 status. Although the Preview sub-tab still just showed the same error page, the Headers sub-tab had my work when I scrolled down to the Form Data section! In IE Edge, I couldn't find an "Edit and Resend" option like Firefox has, so I manually copied the html out.

The last time this happened to me 15 years ago, I don't think we had all these newfangled dev tools. I had resorted to installing a core dump tool and had then sifted through the entire thing to find my work. Right now, on a locked down machine, I don't even have admin rights to install anything. So this saved me a lot of time, I hope it helps someone else as well.

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .