What is SignatureDoesNotMatch error?

LtDoolittle6
LtDoolittle6 Contributor
edited 9:22AM in CFS Bulk File/TM3

Hi,

I am new to the CFS API. I am trying to download a bulk file, but I got I got the SignatureDoesNotMatch error when I am trying to download file from the Cloud.

<?xml version="1.0" encoding="UTF-8"?><Error><Code>SignatureDoesNotMatch</Code><Message>The request signature we calculated does not match the signature you provided. Check your key and signing method.XXXXXXXhost:a206464-bulk-custom.s3.amazonaws.com

What cause the issue?

Tagged:

Answers

  • Hello @LtDoolittle6

    Thank you for reaching out. I never got the issue or replicate the same event before. Could you please share the snippet code that process and download the cloud URL of the file?

    Does it occur with specific file or every bulk files?

  • LtDoolittle6
    LtDoolittle6 Contributor

    Hello @wasin.w V3

    This is our code in C#.

    string fileName = actualFileURL.Replace("%3A", "_"); //replace escaped character
    string destinationPath = $"./{fileName}";

    var httpClient = new HttpClient();
    //Download the file
    byte[] fileBytes = await httpClient.GetByteArrayAsync(actualFileURL);
    await File.WriteAllBytesAsync(destinationPath, fileBytes);

    I got the error for every bulk files.

  • Hello @LtDoolittle6

    Thank you for the code. I can replicate the same issue on my end using the given code.

    I see that the code has replaced "%3A" with "_" for an entire URL string character. This causes the signature string in the URL changed, so the issue occurs.

    This SignatureDoesNotMatch error means you have modified or altered the file signature on the file URL, so the Cloud Provider (currently AWS S3) throws this signature mismatch error when you are trying to download a file.

    The Cloud URL for a bulk-file is in the following format:

    https://XXXX.s3.amazonaws.com/XXX/YEAR/MONTH/DATE/{file_name}?x-request-Id={signature}
    

    Examples:

    • https://a206464-bulk-esg.s3.amazonaws.com/Bulk-ESG-Global-Symbology-Organization-v1/2023/11/26/Bulk-ESG-Global-Symbology-Organization-v1-Init-2023-11-26T16%3A04%3A11.525Z.jsonl.gz?x-request-Id=signature
    • https://a206464-bulk-custom.s3.amazonaws.com/GE-11328/2025/06/12/TM3_FAKEIndex2025-06-12T14%3A00%3A00.000-04%3A00?x-request-Id=signature

    Once you got an actual file URL, you must use that URL to download a bulk file As-Is. Do not alter or make any changes to the URL text string. It will cause unable to download or signature mismatch error.

  • Hi,

    The code to get the file name from URL and escaped character is as follows:

    string fileName = actualFileURL.Split("?")[0].Split("/")[^1].Replace("%3A", "_");