diff --git a/restic_volume_backup/backup_runner.py b/restic_volume_backup/backup_runner.py
index 56726a0..5f374e4 100644
--- a/restic_volume_backup/backup_runner.py
+++ b/restic_volume_backup/backup_runner.py
@@ -53,5 +53,7 @@ def run(image: str = None, command: str = None, volumes: dict = None,
 
 
     container.reload()
-    logger.info("Container ExitCode %s", container.attrs['State']['ExitCode'])
+    logger.debug("Container ExitCode %s", container.attrs['State']['ExitCode'])
     container.remove()
+
+    return container.attrs['State']['ExitCode']
diff --git a/restic_volume_backup/cli.py b/restic_volume_backup/cli.py
index 22e494c..228e5f5 100644
--- a/restic_volume_backup/cli.py
+++ b/restic_volume_backup/cli.py
@@ -73,7 +73,7 @@ def backup(config, containers):
     mounts = containers.generate_backup_mounts('/backup')
     volumes.update(mounts)
 
-    backup_runner.run(
+    result = backup_runner.run(
         image=containers.this_container.image,
         command='restic-volume-backup start-backup-process',
         volumes=volumes,
@@ -84,6 +84,8 @@ def backup(config, containers):
             "com.docker.compose.project": containers.this_container.project_name,
         },
     )
+    logger.info('Backup container exit code: %s', result)
+    # TODO: Alert
 
 
 def start_backup_process(config, containers):
@@ -100,14 +102,26 @@ def start_backup_process(config, containers):
     logger.info("start-backup-process")
 
     # Back up volumes
-    restic.backup_files(config.repository, source='/backup')
+    try:
+        vol_result = restic.backup_files(config.repository, source='/backup')
+        logger.info('Volume backup exit code: %s', vol_result)
+        # TODO: Alert
+    except Exception as ex:
+        logger.error(ex)
+        # TODO: Alert
 
     # back up databases
     for container in containers.containers_for_backup():
         if container.database_backup_enabled:
-            instance = container.instance
-            logger.info('Backing up %s in service %s', instance.container_type, instance.service_name)
-            instance.backup()
+            try:
+                instance = container.instance
+                logger.info('Backing up %s in service %s', instance.container_type, instance.service_name)
+                result = instance.backup()
+                logger.info('Exit code: %s', result)
+                # TODO: Alert
+            except Exception as ex:
+                logger.error(ex)
+                # TODO: Alert
 
 
 def parse_args():
diff --git a/restic_volume_backup/restic.py b/restic_volume_backup/restic.py
index 1b2067b..554bbe8 100644
--- a/restic_volume_backup/restic.py
+++ b/restic_volume_backup/restic.py
@@ -46,7 +46,7 @@ def backup_from_stdin(repository: str, filename: str, source_command: List[str])
 
     # Ensure both processes exited with code 0
     source_exit, dest_exit = source_process.poll(), dest_process.poll()
-    return source_exit == 0 and dest_exit == 0
+    return 0 if (source_exit == 0 and dest_exit == 0) else 1
 
 
 def snapshots(repository: str):