diff --git a/src/fts3rest/fts3rest/lib/JobBuilder.py b/src/fts3rest/fts3rest/lib/JobBuilder.py
index 09aa62818af290c6b70954c53692e4f191aee68c..3e7ffa0bc7753ffff12b414c2168755f6bfb309f 100644
--- a/src/fts3rest/fts3rest/lib/JobBuilder.py
+++ b/src/fts3rest/fts3rest/lib/JobBuilder.py
@@ -337,6 +337,24 @@ class JobBuilder:
         if max_time_in_queue is not None:
             expiration_time = time.time() + max_time_in_queue
 
+        if max_time_in_queue is not None and self.params["bring_online"] > 0:
+            # Ensure that the bringonline and expiration delta is respected
+            timeout_delta = seconds_from_value(
+                app.config.get("fts3.BringOnlineAndExpirationDelta", None)
+            )
+            if timeout_delta is not None:
+                log.debug(
+                    "Will enforce BringOnlineAndExpirationDelta="
+                    + str(timeout_delta)
+                    + "s"
+                )
+                if max_time_in_queue - self.params["bring_online"] < timeout_delta:
+                    raise BadRequest(
+                        "Bringonline and Expiration timeout must be at least "
+                        + str(timeout_delta)
+                        + " seconds apart"
+                    )
+
         if self.params["overwrite"]:
             overwrite_flag = "Y"
         elif self.params["overwrite_on_retry"]:
diff --git a/src/fts3rest/fts3rest/lib/JobBuilder_utils.py b/src/fts3rest/fts3rest/lib/JobBuilder_utils.py
index 398c919937dcbb470c48752924da0ad0e187f934..8ee8591b752d6ef27ca8889fdeb8eaa5c4c771b7 100644
--- a/src/fts3rest/fts3rest/lib/JobBuilder_utils.py
+++ b/src/fts3rest/fts3rest/lib/JobBuilder_utils.py
@@ -276,6 +276,8 @@ def seconds_from_value(value):
             return int(value) * 60
         elif suffix == "h":
             return int(value) * 3600
+        elif suffix == "d":
+            return int(value) * 3600 * 24
         else:
             return None
     except Exception: