GetTaskDocumentWithFormat fails with 403 AmazonS3 Storage exception

Hi there,

we are using the GetTaskDocumentWithFormat function to transform MPP to XML, and we are getting a 403 Forbidden error with the following message:

“Error: GetTaskDocumentWithFormat. Exception: AmazonS3 Storage exception: The AWS Access Key Id you p”

It appears to be some internal issue with the storage of the file. The uploadFile was still successful, however when we do the conversion with GetTaskDocumentWithFormat, we get this error.

Would be great to get a fast response, because this is currently broken for our customers!

API Version is v3.0

Thanks!

1 Like

@lasse.steffen

Issue Summary

You are calling GetTaskDocumentWithFormat (Aspose.Tasks Cloud v3.0) to convert an MPP file to XML and receive a 403 Forbidden response:

Error: GetTaskDocumentWithFormat. Exception: AmazonS3 Storage exception: The AWS Access Key Id you p...

The file upload succeeded, but the conversion request fails with an S3‑related permission error.


Likely Causes

# Cause How it manifests
1 Invalid or expired AWS credentials for the Aspose Cloud storage configuration. S3 returns 403 because the Access Key ID / Secret Key cannot be validated.
2 File stored in a different storage than the one used for the conversion request (wrong storageName parameter). The API looks for the file in a storage where it does not exist or where the credentials are different.
3 Insufficient S3 bucket permissions (e.g., missing GetObject/PutObject rights). Upload works (PutObject) but GetObject (required for conversion) is blocked → 403.
4 Incorrect request URL / file path (extra spaces, URL‑encoding issues). S3 treats the request as a different object and denies access.
5 Temporary AWS service issue (rare). Same request fails intermittently.

Step‑by‑Step Resolution

  1. Verify Cloud Storage Settings

    • Log in to the Aspose Cloud DashboardStorage.
    • Ensure that the AWS Access Key Id and Secret Access Key are correct and not expired.
    • If you recently rotated keys, update them in the dashboard and re‑generate your ClientId / ClientSecret token.
  2. Confirm the Correct storageName

    • When calling GetTaskDocumentWithFormat, include the exact storage name you used for the upload:
    GET https://api.aspose.cloud/v3.0/tasks/{fileName}?format=xml&storageName=MyAwsS3Storage
    
    • If you omit storageName the default storage is used, which may point to a different bucket.
  3. Check S3 Bucket Policies

    • In the AWS console, open the bucket linked to your Aspose storage.
    • Verify that the bucket policy allows s3:GetObject for the IAM user whose keys you supplied. A minimal policy example:
    {
      "Version": "2012-10-17",
      "Statement": [
        {
          "Effect": "Allow",
          "Principal": { "AWS": "arn:aws:iam::<account-id>:user/<aspose-user>" },
          "Action": ["s3:GetObject", "s3:PutObject"],
          "Resource": "arn:aws:s3:::<bucket-name>/*"
        }
      ]
    }
    
  4. Re‑upload the file (optional)

    • Delete the existing file from the bucket.
    • Upload it again using Aspose’s UploadFile API, ensuring the request succeeds with a 200 OK response.
  5. Test the conversion with a minimal request

    // C# example using Aspose.Tasks Cloud SDK
    var config = new Configuration
    {
        ClientId = "<Your Client Id>",
        ClientSecret = "<Your Client Secret>",
        BasePath = "https://api.aspose.cloud"
    };
    var tasksApi = new TasksApi(config);
    
    // Ensure you pass the correct storage name
    var response = tasksApi.GetTaskDocumentWithFormat(
        fileName: "project.mpp",
        format: "xml",
        storageName: "MyAwsS3Storage"
    );
    
    // response.Body contains the XML
    
    • If the call returns the XML, the issue is resolved.
  6. If the problem persists

    • Capture the full request URL (including query parameters) and the exact response body (the 403 JSON).
    • Provide these details in a follow‑up post so we can reproduce the request on our side.

Quick Checklist

  • [ ] AWS Access Key & Secret are correct in Aspose Cloud Dashboard.
  • [ ] storageName parameter matches the storage you uploaded to.
  • [ ] S3 bucket policy includes s3:GetObject permission for the Aspose IAM user.
  • [ ] File path / name is URL‑encoded (no hidden spaces).
  • [ ] Use a fresh OAuth token (client credentials flow) after any key change.

References


If you still see the 403 after following the steps above, please reply with:

  1. The exact request URL (masking the access key).
  2. The full JSON response body (including the error message).
  3. The storage name you are using.

We’ll investigate further and get your conversion working again as quickly as possible.

Best regards,
Aspose Support

The storage we are using is an internal storage, so no S3 bucket that we provide/have access to. So we can not verify keys.

I’m seeing this issue on merge slides aendpoints as well. This seems like a bug. It happens intermittently. I’m also using default internal storage.

@lasse.steffen ,
we are investigating the issue.
Does it occur on each call of GetTaskDocumentWithFormat ?

1 Like

Thank you for looking into it. Yes, it is happening on each call. This has very high prio for us, as one of our key features is completely broken for all our customers.

If you need more info, please let me know, and I can try to provide more.

@lasse.steffen ,
can you check that requests are processed without error now?

It’s working again, thank you!

1 Like