Skip to content

Feature request: More explicit error message when publishing to blob storage fails due to insufficient permissions. #4639

@robsyme

Description

@robsyme

New feature

If a run tries to publish a file to a blob storage location outside the available credential's permissions, the error messages could be more helpful in suggesting ways to remedy the problem.

To aid debugging, the user might appreciate:

  1. A message indicating that the failure was generated during the publication event and not in the task itself.
  2. The nameof the file being published.
  3. The intended destination of the file.

Usage scenario

A common occurrence is that the user either mis-types the publishDir destination, or the credential's permissions are changed by another user in their organization, leading to an Access Denied error (on S3, for example).

In this case, the information report by v23.10.0 is:

A message on stdout indicating an error in task execution:

ERROR ~ Error executing process > 'TallyCounts (2)'

Caused by:
  Access Denied (Service: Amazon S3; Status Code: 403; Error Code: AccessDenied; Request ID: AJZ68N5VPHFWD188; S3 Extended Request ID: DiJI9FUJAMk4yc+uQD4gJ+sL5Xpsjgkt+WLdQirvijSWtS+45JdZ6DG0hrcq/IvYFDUAXJe6GDRoALVKpS2LTw==; Proxy: null)

... and a trace route in .nextflow.log:

com.amazonaws.services.s3.model.AmazonS3Exception: Access Denied (Service: Amazon S3; Status Code: 403; Error Code: AccessDenied; Request ID: GSS3SPV2YBYYFTG2; S3 Extended Request ID: ZyONh4JW3ZiI3HSMMVgTN9V9IJFrB7x0VHivCviOsb+QW6YZDpCoetL7SH5oq4FXsrsVZgjHvV0M+SEu37s7vw==; Proxy: null)
	at com.amazonaws.http.AmazonHttpClient$RequestExecutor.handleErrorResponse(AmazonHttpClient.java:1879)
	at com.amazonaws.http.AmazonHttpClient$RequestExecutor.handleServiceErrorResponse(AmazonHttpClient.java:1418)
	at com.amazonaws.http.AmazonHttpClient$RequestExecutor.executeOneRequest(AmazonHttpClient.java:1387)
	at com.amazonaws.http.AmazonHttpClient$RequestExecutor.executeHelper(AmazonHttpClient.java:1157)
	at com.amazonaws.http.AmazonHttpClient$RequestExecutor.doExecute(AmazonHttpClient.java:814)
	at com.amazonaws.http.AmazonHttpClient$RequestExecutor.executeWithTimer(AmazonHttpClient.java:781)
	at com.amazonaws.http.AmazonHttpClient$RequestExecutor.execute(AmazonHttpClient.java:755)
	at com.amazonaws.http.AmazonHttpClient$RequestExecutor.access$500(AmazonHttpClient.java:715)
	at com.amazonaws.http.AmazonHttpClient$RequestExecutionBuilderImpl.execute(AmazonHttpClient.java:697)
	at com.amazonaws.http.AmazonHttpClient.execute(AmazonHttpClient.java:561)
	at com.amazonaws.http.AmazonHttpClient.execute(AmazonHttpClient.java:541)
	at com.amazonaws.services.s3.AmazonS3Client.invoke(AmazonS3Client.java:5456)
...

Suggest implementation

No suggested implementation at this time (apologies)!

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions