diff --git a/swh/core/cli/sentry.py b/swh/core/cli/sentry.py
index db121a4cd1ada28dccd0d8e2c38fd37522ed613a..d4ed2c59e7df3a4c6444d668ddba0d41434fab93 100644
--- a/swh/core/cli/sentry.py
+++ b/swh/core/cli/sentry.py
@@ -74,7 +74,7 @@ def _process_sentry_events_pages(
     )
     if full_sentry_responses:
         sentry_issue_events_url += "?full=true"
-    while True:
+    while sentry_issue_events_url:
         response = requests.get(
             sentry_issue_events_url, headers={"Authorization": f"Bearer {sentry_token}"}
         )
@@ -145,7 +145,7 @@ def extract_scheduler_tasks(
             task_name = celery_job.get("task_name")
             task_param = celery_job.get("kwargs")
             if task_param:
-                key = tuple([task_name] + list(task_param.values()))
+                key = tuple([task_name] + list(str(v) for v in task_param.values()))
                 task_params[key] = (task_name, task_param)
 
     _process_sentry_events_pages(
diff --git a/swh/core/tests/data/https_sentry.softwareheritage.org/api_0_issues_1_events,full=true b/swh/core/tests/data/https_sentry.softwareheritage.org/api_0_issues_1_events,full=true
new file mode 100644
index 0000000000000000000000000000000000000000..692bf8a4ebc4cd9c10a7fa3a5ca71bae4effa8bf
--- /dev/null
+++ b/swh/core/tests/data/https_sentry.softwareheritage.org/api_0_issues_1_events,full=true
@@ -0,0 +1,31 @@
+[
+    {
+        "tags": [
+            {
+                "key": "environment",
+                "value": "production"
+            },
+            {
+                "key": "swh.loader.origin_url",
+                "value": "https://github.com/pjbgf/sha1cd"
+            }
+        ],
+        "context": {
+            "celery-job": {
+                "args": [],
+                "kwargs": {
+                    "checksum_layout": "nar",
+                    "checksums": {
+                        "sha256": "917f4174b876771b4635a0ef736e0d3913be0b4019ec9cdbad7aed79c09d07bc"
+                    },
+                    "fallback_urls": [],
+                    "lister_instance_name": "guix.gnu.org",
+                    "lister_name": "nixguix",
+                    "ref": "v0.3.0",
+                    "url": "https://github.com/pjbgf/sha1cd"
+                },
+                "task_name": "swh.loader.git.tasks.LoadGitCheckout"
+            }
+        }
+    }
+]
\ No newline at end of file
diff --git a/swh/core/tests/test_cli_sentry.py b/swh/core/tests/test_cli_sentry.py
index 14c805998712fde1aa42db194a530e196d63f7f4..164cddbde9a8b155a249ae788c6ee53468f9127a 100644
--- a/swh/core/tests/test_cli_sentry.py
+++ b/swh/core/tests/test_cli_sentry.py
@@ -92,3 +92,21 @@ def test_sentry_extract_scheduler_tasks_recurring_policy(
     csv_tasks_file = os.path.join(datadir, "sentry_expected_scheduler_tasks.csv")
     with open(csv_tasks_file, "r") as tasks_csv:
         assert result.output.strip() == tasks_csv.read().replace("oneshot", "recurring")
+
+
+def test_sentry_extract_scheduler_tasks_dict_and_list_task_params(
+    swhmain, requests_mock_datadir
+):
+    runner = CliRunner()
+    result = runner.invoke(
+        swhmain,
+        [
+            "sentry",
+            "extract-scheduler-tasks",
+            "-t",
+            "sentry-token",
+            "-i",
+            "1",
+        ],
+    )
+    assert_result(result)