diff --git a/src/pypelines/__init__.py b/src/pypelines/__init__.py
index fa0af12f2aac6334d791bdc2fb0af9e31500cd3f..0fded8de1c6ad4205b863337e8e420922e3ba245 100644
--- a/src/pypelines/__init__.py
+++ b/src/pypelines/__init__.py
@@ -1,4 +1,4 @@
-__version__ = "0.0.36"
+__version__ = "0.0.37"
 
 from . import loggs
 from .pipes import *
diff --git a/src/pypelines/celery_tasks.py b/src/pypelines/celery_tasks.py
index 501fce0359866b66a0293ce0575733ec8045eda9..f6722515e46e074950ed035e6e293fc502eb14c2 100644
--- a/src/pypelines/celery_tasks.py
+++ b/src/pypelines/celery_tasks.py
@@ -33,6 +33,7 @@ def get_runner(task_name: str):
             try:
                 session = task.get_session()
                 application = task.get_application()
+                arguments = task.arguments
 
                 with LogTask(task) as log_object:
                     logger = log_object.logger
@@ -44,7 +45,13 @@ def get_runner(task_name: str):
                         step: "BaseStep" = (
                             application.pipelines[task.pipeline_name].pipes[task.pipe_name].steps[task.step_name]
                         )
-                        step.generate(session, extra=extra, skip=True, check_requirements=True, **task.arguments)
+                        if arguments.get("refresh", False) or arguments.get("refresh_requirements", []):
+                            skip = False
+                        else:
+                            skip = True
+                        arguments.pop(skip)
+
+                        step.generate(session, extra=extra, skip=skip, check_requirements=True, **task.arguments)
                         task.status_from_logs(log_object)
                     except Exception as e:
                         traceback_msg = format_traceback_exc()