bitmovin / bitmovin-api-sdk-examples

Set of encoding workflow examples highlighting the use of the Bitmovin API SDKs
MIT License
42 stars 27 forks source link

Error "Encoding Output validation failed!! #60

Open fbridger opened 7 months ago

fbridger commented 7 months ago

I am running the MultiCodecEncoding sample from the solution and changed the Output to use an Azure Storage Account.

All Encoding Jobs are failing with the error "Encoding Output validation failed!".

Some additional information:

How can I get more/additional information about what this error means?

image

Response Body with error:

{
   "requestId":"33311c97-6e05-49f3-ac07-c5765f43e7b8",
   "status":"SUCCESS",
   "data":{
      "result":{
         "id":"0a704c6f-8e5b-152c-818e-663093696753",
         "createdAt":"2024-03-22T12:44:03Z",
         "queuedAt":"2024-03-22T12:44:13Z",
         "runningAt":"2024-03-22T12:44:18Z",
         "finishedAt":"2024-03-22T12:45:50Z",
         "errorAt":"2024-03-22T12:45:50Z",
         "eta":0.0,
         "progress":90,
         "status":"ERROR",
         "messages":[
            {
               "id":"0a700377-8e5b-15c7-818e-663236266778",
               "type":"ERROR",
               "date":"2024-03-22T12:45:50Z",
               "text":"Encoding has failed."
            },
            {
               "id":"0a7033b8-8e5b-149f-818e-6630d1626ae3",
               "type":"INFO",
               "date":"2024-03-22T12:44:18Z",
               "text":"Download of input file in progress."
            },
            {
               "id":"0a7033b8-8e5b-149f-818e-66315c296b05",
               "type":"INFO",
               "date":"2024-03-22T12:44:19Z",
               "text":"Analyzing input in progress."
            },
            {
               "id":"0a7033b8-8e5b-149f-818e-66315c296b04",
               "type":"INFO",
               "date":"2024-03-22T12:44:19Z",
               "text":"Download of input file finished"
            },
            {
               "id":"0a7033b8-8e5b-149f-818e-66315c296b02",
               "type":"INFO",
               "date":"2024-03-22T12:44:20Z",
               "text":"Encoding in progress."
            },
            {
               "id":"0a700377-8e5b-15c7-818e-6632355f6777",
               "type":"ERROR",
               "date":"2024-03-22T12:45:50Z",
               "text":"Encoding Output validation failed!"
            },
            {
               "id":"0a7033b8-8e5b-149f-818e-66315c296b03",
               "type":"INFO",
               "date":"2024-03-22T12:44:20Z",
               "text":"Analyzing input finished."
            }
         ],
         "subtasks":[
            {
               "id":"0a7033b8-8e5b-149f-818e-66315c296b09",
               "name":"Input file download",
               "runningAt":"2024-03-22T12:44:18Z",
               "updatedAt":"2024-03-22T12:44:19Z",
               "finishedAt":"2024-03-22T12:44:19Z",
               "progress":100,
               "status":"FINISHED",
               "metadata":[
                  {
                     "date":"2024-03-22T12:44:19Z",
                     "data":{
                        "size":64657027
                     }
                  }
               ]
            },
            {
               "id":"0a7033b8-8e5b-149f-818e-66315c296b07",
               "name":"Input file analysis",
               "runningAt":"2024-03-22T12:44:19Z",
               "updatedAt":"2024-03-22T12:44:20Z",
               "finishedAt":"2024-03-22T12:44:20Z",
               "progress":100,
               "status":"FINISHED"
            },
            {
               "id":"0a7033b8-8e5b-149f-818e-66315c296b06",
               "name":"Encoding",
               "runningAt":"2024-03-22T12:44:21Z",
               "updatedAt":"2024-03-22T12:45:49Z",
               "finishedAt":"2024-03-22T12:45:49Z",
               "progress":100,
               "status":"FINISHED",
               "metadata":[
                  {
                     "date":"2024-03-22T12:45:49Z",
                     "data":{
                        "bytesEncoded":970666116,
                        "avgFramesEncodedPerSecond":1154.0,
                        "framesEncoded":71575,
                        "realtimeFactor":9.620295698924732
                     }
                  }
               ]
            },
            {
               "id":"0a7033b8-8e5b-149f-818e-66315c296b08",
               "name":"Analysis",
               "runningAt":"2024-03-22T12:44:21Z",
               "updatedAt":"2024-03-22T12:45:49Z",
               "finishedAt":"2024-03-22T12:44:51Z",
               "progress":100,
               "status":"FINISHED"
            }
         ],
         "error":{
            "code":-1,
            "category":"UNDEFINED",
            "text":"Unable to determine if the error is retryable.",
            "retryHint":"UNDEFINED"
         }
      },
      "messages":[
         {
            "id":"f21386c7-9f32-40f1-9516-78406f6b9662",
            "date":"2024-03-22T12:45:55Z",
            "type":"INFO",
            "text":"Successfully retrieved status of Encoding with id ae542a44-d4d4-4f93-9148-8e38fbf269e1!"
         }
      ]
   }
}
fbridger commented 6 months ago

After 3 weeks without getting support from Bitmovin, we found the problem with the dotnet SDK Example code.

The BuildAbsolutePath is wrongly using \ (backslash) when running on a Windows machine instead of using / (forward slash).

Wrong code https://github.com/bitmovin/bitmovin-api-sdk-examples/blob/main/dotnet/Bitmovin.Api.Sdk.Examples/MultiCodecEncoding.cs#L1221C9-L1224C10

private string BuildAbsolutePath(string relativePath)
{
        return Path.Join(_configProvider.GetS3OutputBasePath(), $"{ClassName}-{DATE_STRING}", relativePath);
}

Fixed code

private string BuildAbsolutePath(string relativePath)
{
    var s3OutputBasePath = _configProvider.GetS3OutputBasePath();
    var absolutePath = Path.Join(s3OutputBasePath, $"{ClassName}-{DATE_STRING}", relativePath);
    absolutePath = absolutePath.Replace("\\", "/");
    return absolutePath;
}