diff --git a/arkindex_worker/worker/__init__.py b/arkindex_worker/worker/__init__.py
index b7325d84b2c42657272955d2ca1b8fccf43fa10e..53bdffee6051f90d12a8768e47fb6cdf52b3be6d 100644
--- a/arkindex_worker/worker/__init__.py
+++ b/arkindex_worker/worker/__init__.py
@@ -138,6 +138,9 @@ class ElementsWorker(
     def configure(self):
         # CLI args are stored on the instance so that implementations can access them
         self.args = self.parser.parse_args()
+
+        super().setup_api_client()
+
         if self.is_read_only:
             super().configure_for_developers()
         else:
diff --git a/arkindex_worker/worker/base.py b/arkindex_worker/worker/base.py
index cc78ce07c10e10d9cca460f1b05895274b67a28e..b046dc70132e008ffec4058abe2329c2b7d4d587 100644
--- a/arkindex_worker/worker/base.py
+++ b/arkindex_worker/worker/base.py
@@ -140,6 +140,11 @@ class BaseWorker(object):
             or self.worker_run_id is None
         )
 
+    def setup_api_client(self):
+        # Build Arkindex API client from environment variables
+        self.api_client = ArkindexClient(**options_from_env())
+        logger.debug(f"Setup Arkindex API client on {self.api_client.document.url}")
+
     def configure_for_developers(self):
         assert self.is_read_only
         # Setup logging level if verbose or if ARKINDEX_DEBUG is set to true
@@ -174,10 +179,6 @@ class BaseWorker(object):
             logger.setLevel(logging.DEBUG)
             logger.debug("Debug output enabled")
 
-        # Build Arkindex API client from environment variables
-        self.api_client = ArkindexClient(**options_from_env())
-        logger.debug(f"Setup Arkindex API client on {self.api_client.document.url}")
-
         # Load worker run information
         worker_run = self.request("RetrieveWorkerRun", id=self.worker_run_id)
 
diff --git a/tests/conftest.py b/tests/conftest.py
index ea16385f33c0e1a0d5dec64c59d273208d58bd07..35ac31aeae79afacfaddb69a512dac09b603a7e7 100644
--- a/tests/conftest.py
+++ b/tests/conftest.py
@@ -239,6 +239,7 @@ def mock_base_worker_with_cache(mocker, monkeypatch, mock_worker_run_api):
     monkeypatch.setattr(sys, "argv", ["worker"])
 
     worker = BaseWorker(support_cache=True)
+    worker.setup_api_client()
     monkeypatch.setenv("PONOS_TASK", "my_task")
     return worker
 
diff --git a/tests/test_base_worker.py b/tests/test_base_worker.py
index 0a6cf496b9774f429e3dfc27a4d05f19af79a973..84571ce7cda0061688656f3ca8620cab3298571b 100644
--- a/tests/test_base_worker.py
+++ b/tests/test_base_worker.py
@@ -98,6 +98,7 @@ def test_cli_default(mocker, mock_worker_run_api):
     assert worker.worker_version_id == "12341234-1234-1234-1234-123412341234"
     assert worker.worker_run_id == "56785678-5678-5678-5678-567856785678"
 
+    worker.setup_api_client()
     worker.configure()
     assert not worker.args.verbose
     assert logger.level == logging.NOTSET
@@ -118,6 +119,7 @@ def test_cli_arg_verbose_given(mocker, mock_worker_run_api):
     assert worker.worker_version_id == "12341234-1234-1234-1234-123412341234"
     assert worker.worker_run_id == "56785678-5678-5678-5678-567856785678"
 
+    worker.setup_api_client()
     worker.configure()
     assert worker.args.verbose
     assert logger.level == logging.DEBUG
@@ -139,6 +141,7 @@ def test_cli_envvar_debug_given(mocker, monkeypatch, mock_worker_run_api):
     assert worker.worker_version_id == "12341234-1234-1234-1234-123412341234"
     assert worker.worker_run_id == "56785678-5678-5678-5678-567856785678"
 
+    worker.setup_api_client()
     worker.configure()
     assert logger.level == logging.DEBUG
     assert worker.api_client
@@ -212,6 +215,7 @@ def test_configure_worker_run(mocker, monkeypatch, responses):
     assert worker.worker_version_id == "12341234-1234-1234-1234-123412341234"
     assert worker.worker_run_id == "56785678-5678-5678-5678-567856785678"
 
+    worker.setup_api_client()
     worker.configure()
 
     assert worker.user_configuration == {"a": "b"}
@@ -270,6 +274,7 @@ def test_configure_user_configuration_defaults(
         content_type="application/json",
     )
 
+    worker.setup_api_client()
     worker.configure()
 
     assert worker.config == {"param_1": "/some/path/file.pth", "param_2": 12}
@@ -323,6 +328,7 @@ def test_configure_user_config_debug(mocker, monkeypatch, responses, debug):
         content_type="application/json",
     )
     worker.args = worker.parser.parse_args()
+    worker.setup_api_client()
     worker.configure()
 
     assert worker.user_configuration == {"debug": debug}
@@ -370,6 +376,7 @@ def test_configure_worker_run_missing_conf(mocker, monkeypatch, responses):
         content_type="application/json",
     )
     worker.args = worker.parser.parse_args()
+    worker.setup_api_client()
     worker.configure()
 
     assert worker.user_configuration is None