diff --git a/beat/web/scripts/worker.py b/beat/web/scripts/worker.py
index 1c0bd4d2309af12274115f2ef612116cae07320b..c4a257ce3a27493011249caa961c7cdfd5f8f047 100644
--- a/beat/web/scripts/worker.py
+++ b/beat/web/scripts/worker.py
@@ -115,6 +115,17 @@ def main(user_input=None):
     from ..backend import utils
     from ..backend.models import Worker
 
+    try:
+        worker = Worker.objects.get(name=arguments['--name'])
+    except Worker.DoesNotExist:
+        logger.error("Cannot find worker `%s' in database, aborting",
+            arguments['--name'])
+        sys.exit(1)
+    else:
+        logger.info("Found worker `%s' in database, proceeding...",
+            arguments['--name'])
+
+    # figure out paths to programs I need to use
     from beat.core.async import resolve_cpulimit_path
     cpulimit = resolve_cpulimit_path(arguments['--cpulimit'])
     logger.debug("(path) cpulimit: `%s'", cpulimit)
@@ -128,8 +139,6 @@ def main(user_input=None):
     environments = utils.find_environments(paths)
     logger.debug("Environments: %s", ", ".join(environments))
 
-    worker = Worker.objects.get(name=arguments['--name'])
-
     # check environments
     missing, unused = worker.check_environments(environments)
     if unused: