I have a new application with a status bar that I want to use to display the errors that occur but only as long as they're relevant. For example if the user clicks on a button to do an operation and it fails, then the error would appear on the status bar. If the user tries again and it succeeds then the error message would go away.
So far so good, the problem is that the user might do something else in the application for which the error message is no longer relevant. For example the user could go to another screen and continue working there.
I'm leaning towards after every action firing "success" messages that would clear the error messages (if any). That way the error stays on until the user does something else.
How do you handle these situations?
EDIT:
I don't think I can/should use in-situ messages because there are many async operations that the user can perform. The user can be in another place by the time the error occurs.
The idea is not to flash something every time the user performs an action. Instead the status bar would be blank (probably hidden too) if there aren't any errors. If an error occurs then the status bar would display what happened. If the user performs another action successfully then the status bar would be blank again (maybe hidden too).
From the user point of view this seems like a good idea but I ask because sending all these success messages doesn't feel "right". There's a smell to firing all these events that would basically be eaten by the application. Maybe there's nothing wrong with it and I'm just making it a bigger deal than it is.
This seems like a common scenario for an application so I wanted to know what's a best practice.