diff --git a/app/api/utils.py b/app/api/utils.py
index 9f4ef51bca0edc09a80730d0757502753435f263..7c80a76d3e75b9e5b32fe002aceb34040a6f67e1 100644
--- a/app/api/utils.py
+++ b/app/api/utils.py
@@ -197,7 +197,9 @@ async def check_buckets_access(
             errors.append(error)
     # Check if the user has access to the bucket where the report should be written
     if report_bucket is not None:
-        error = await _check_bucket_access(db, uid, report_bucket)
+        error = await _check_bucket_access(
+            db, uid, report_bucket[5:] if report_bucket.startswith("s3://") else report_bucket
+        )
         if error is not None:
             errors.append(error)
     if len(errors) > 0:
diff --git a/app/schemas/workflow_execution.py b/app/schemas/workflow_execution.py
index 92c380e0cb7ec86b9b43becd5be14480da7d2849..3c9ba61a73434ec39e8f468e1d3be04b91bcd512 100644
--- a/app/schemas/workflow_execution.py
+++ b/app/schemas/workflow_execution.py
@@ -27,7 +27,7 @@ class WorkflowExecutionIn(_BaseWorkflowExecution):
     parameters: dict[str, Any] = Field(..., description="Parameters for this workflow")
     report_output_bucket: str | None = Field(
         None,
-        description="Bucket where to save the Nextflow report. If None, no report will be generated",
+        description="Bucket where to save the Nextflow report. If None, no report will be generated. With our without prefix 's3://'",  # noqa: E501
         min_length=3,
         max_length=63,
         example="some-bucket",