diff --git a/snaparchiver/src/main/java/org/tango/server/snap/archiver/SnapArchiver.java b/snaparchiver/src/main/java/org/tango/server/snap/archiver/SnapArchiver.java
index 7b8f0e685735abece5dcb1a0e774fa1e952e7b6a..7dfe2efbc888d009557cfc3eae518f97b30f563f 100644
--- a/snaparchiver/src/main/java/org/tango/server/snap/archiver/SnapArchiver.java
+++ b/snaparchiver/src/main/java/org/tango/server/snap/archiver/SnapArchiver.java
@@ -91,6 +91,7 @@ public final class SnapArchiver {
             SnapshotPersistenceManagerFactory factory = SnapshotPersistenceManagerFactory.getInstance();
             manager = factory.getManager(beansFileName, dbUser, dbPassword);
             state = DeviceState.ON;
+            status = "device ready for snapshot";
         } catch (SnapshotingException e) {
             throw e.toTangoException();
         }
@@ -244,11 +245,15 @@ public final class SnapArchiver {
                 // group.getMessages();
                 Map<String, String> messages = group.getMessages();
                 logger.debug("snapshot {} execution messages are {}", messages);
+                StringBuilder stringBuilder = new StringBuilder();
+                stringBuilder.append("Snapshot ").append(snapId).append(" for context ").append(contextID).append("done.\n");
+                stringBuilder.append("Execution is ").append(isExecuted).append("\nMessages are ").append(messages);
+                state = DeviceState.ON;
             } catch (SnapshotingException e) {
+                state = DeviceState.FAULT;
+                status = "snapshot failed " + e.toString();
                 logger.error("Exception received during TriggerLaunchSnapshot", e);
                 throw e.toTangoException();
-            } finally {
-                state = DeviceState.ON;
             }
             return snapId;
         }