diff --git a/bin/run-jobs b/bin/run-jobs
index c72a583e88a317567d1188392e8ff650790e8a58..2b76a58fd87399a94bdd711e9f9624075d96a9de 100755
--- a/bin/run-jobs
+++ b/bin/run-jobs
@@ -6,18 +6,18 @@ import argparse
 
 parser = argparse.ArgumentParser(description='Spustí joby ve frontě')
 parser.add_argument('-j', '--job', type=int, metavar='ID', help='Spustí konkrétní job')
-parser.add_argument('-r', '--retry', default=False, action='store_true', help='Znovu spustí dokončený job')
+parser.add_argument('-r', '--restart', default=False, action='store_true', help='Znovu spustí dokončený job')
 
 args = parser.parse_args()
 
 init_standalone()
 
 if args.job is None:
-    if args.retry:
-        die("Přepínač --retry lze použít jen s --job")
+    if args.restart:
+        die("Přepínač --restart lze použít jen s --job")
     mo.jobs.process_jobs()
 else:
     tj = mo.jobs.TheJob(args.job)
     if not tj.load():
         die("Tento job neexistuje")
-    tj.run(retry=args.retry)
+    tj.run(restart=args.restart)
diff --git a/mo/jobs/__init__.py b/mo/jobs/__init__.py
index 8b30dc26d3346e45fa8b213c652a9764f8bcaa23..a8f96e55760da1ca933b90fa16dcda40f4705ed4 100644
--- a/mo/jobs/__init__.py
+++ b/mo/jobs/__init__.py
@@ -116,19 +116,19 @@ class TheJob:
         logger.info(f'{self.log_prefix} >> {msg}')
         self.errors.append(msg)
 
-    def _check_runnable(self, retry: bool) -> Optional[str]:
+    def _check_runnable(self, restart: bool) -> Optional[str]:
         s = self.job.state
-        if s == db.JobState.ready:
+        if s in (db.JobState.ready, db.JobState.soft_error):
             return None
         elif s == db.JobState.running:
             # Může se stát, že ho mezitím začal vyřizovat jiný proces
             return 'právě běží'
         elif s in (db.JobState.done, db.JobState.failed, db.JobState.internal_error):
-            return None if retry else 'je už hotový'
+            return None if restart else 'je už hotový'
         else:
             return 'je v neznámém stavu'
 
-    def run(self, retry: bool = False):
+    def run(self, restart: bool = False):
         sess = db.get_session()
         if not self.load():
             # Někdo ho mezitím smazal
@@ -136,7 +136,7 @@ class TheJob:
             sess.rollback()
             return
 
-        reject_reason = self._check_runnable(retry)
+        reject_reason = self._check_runnable(restart)
         if reject_reason is not None:
             logger.info(f'{self.log_prefix} {reject_reason}')
             sess.rollback()