Hi Manas Mohanty,
Thank you for the speedy response.
Based on AWS S3 access logs, we are seeing the following pattern for each transcription job:
- Multiple Failed HEAD Requests
- HTTP Method: HEAD
- Response: 403 SignatureDoesNotMatch
- Source IPs: 51.143.212.173, 51.104.27.67, 51.143.212.172 (Microsoft Azure)
- User Agent:
azsdk-net-Storage.Blobs/12.14.1 (.NET 8.0.18; CBL-Mariner/Linux)
Sample log entry:
REST.HEAD.OBJECT recordings/RE27beca6698f5bd1d202342bcd8aeb3e0.wav
HEAD /recordings/RE27beca6698f5bd1d202342bcd8aeb3e0.wav?response-content-type=...
403 SignatureDoesNotMatch
User-Agent: "azsdk-net-Storage.Blobs/12.14.1 (.NET 8.0.18; CBL-Mariner/Linux)"
- Multiple Successful GET Requests
- HTTP Method: GET
- Response: 200 OK
- Source IPs: Same Microsoft Azure IPs
- Bytes Transferred: Full file size (e.g., 2,026,284 bytes) per request
Sample log entry:
REST.GET.OBJECT recordings/RE27beca6698f5bd1d202342bcd8aeb3e0.wav
GET /recordings/RE27beca6698f5bd1d202342bcd8aeb3e0.wav?response-content-type=...
200 - 2026284 bytes
Questions and Concerns
- Why is the service making HEAD requests?
The pre-signed URLs we generate are specifically signed for GET requests only. AWS S3 pre-signed URLs are method-specific, which means a URL signed for GET will not authenticate HEAD requests (resulting in the SignatureDoesNotMatch errors we're seeing).
Question: Why does the Azure Batch Transcription Service attempt HEAD requests? Is this for metadata retrieval, connection testing, or another purpose?
- Why are there ~500 requests per file?
For a single audio file transcription, we're seeing hundreds of requests being made.
Question: What is causing this volume of requests? Is the service:
- Retrying failed requests excessively?
- Downloading the file multiple times?
- Using a chunked download strategy with poor efficiency?
- Experiencing internal errors that trigger re-downloads?
- How should we configure pre-signed URLs for Azure compatibility?
Questions:
- Does the Azure service require both HEAD and GET access?
- Is there documentation on the expected HTTP methods the service will use?
- Is there a recommended approach for pre-signed URL configuration with your service?