Quick Fix: Retrospect Error "!Can't read state information, error -557 ( transaction already complete)"


I have a love/hate relationship with Retrospect. At times, it is a godsend. At others, I pull my hair out by its roots because it is annoying or buggy or something.

This time, I ran into this message in the log:

!Can't read state information, error -557 ( transaction already complete)

Seriously, EMC, that’s the best you can do? When I write error messages into my programs (and, yes, I do program every now and then), I try to use the following guidelines:

  1. I use English, not Tech. What’s “state information?” And what might a “transaction” be? If the Retrospect manual doesn’t use these terms, then neither should the error message.
  2. I interpret the Tech into English where it’s important to use the Tech.
  3. I provide as much information about the error as possible. Here, “client state” would help a bunch as it would let me know that it isn’t my backup server’s state that is a problem.
  4. I provide suggestions to the user as to what might be causing the problem. If, for example, the above message were caused by, say, a network error, I’d report that a network error may have prevented the state from being read.

It turns out that the error is, in this case, caused by screwed-up client. Merely stopping and starting the Retrospect Client with the “On/Off” radio buttons won’t fix it, though. Instead, you have to kill off the retroclient process. Don’t even think of messing with /Library/Preferences/retroclient.state. You will have much heartache if you do. And sometimes it’s just darned inconvenient to restart the client, so killing the retroclient process is a good first step towards fixing this problem.

Want to kill your retroclient process? Here’s how.

Open the Retrospect Client app and turn Retrospect off with the radio button. Then quit the Retrospect Client app.

In Terminal, as an administrative user:

$ ps -ax | grep retro

which will return something like

8962 ??         0:13.91 /Applications/Retrospect Client.app/Contents/Resources/retroclient
9722 ttys001    0:00.00 grep retro

Note the process ID at the start of the retroclient line, 8962. Yours will almost certainly be different, so do the following, but substitute in your own process ID.

$ sudo kill 8962
Password: (enter your administrative password here)

That should kill retroclient. If you repeat the ps -ax | grep retro bit, you should only see grep retro returned.

Now go restart the client with the Retrospect Client application, execute the backup script that failed, and watch with fingers crossed.

If this fails? I got notin’. Sorry. And neither does Google, so you’re on your own…

Good luck!

Recent Comments