Dashboard Hardware UploadFromStreamAsync throws error "403 - Forbidden"

Hi,

The dashboard sample has uploaded the cab file for attestation until September 10th, when all jobs have failed:

Unhandled Exception: System.AggregateException: One or more errors occurred. ---> Microsoft.WindowsAzure.Storage.StorageException: The remote server returned an error: (403) Forbidden. ---> System.Net.WebException: The remote server returned an error: (403) Forbidden.
   at Microsoft.WindowsAzure.Storage.Shared.Protocol.HttpResponseParsers.ProcessExpectedStatusCodeNoException[T](HttpStatusCode expectedStatusCode, HttpStatusCode actualStatusCode, T retVal, StorageCommandBase`1 cmd, Exception ex)
   at Microsoft.WindowsAzure.Storage.Blob.CloudBlockBlob.<>c__DisplayClass52.<PutBlobImpl>b__51(RESTCommand`1 cmd, HttpWebResponse resp, Exception ex, OperationContext ctx)
   at Microsoft.WindowsAzure.Storage.Core.Executor.Executor.EndGetResponse[T](IAsyncResult getResponseResult)
   --- End of inner exception stack trace ---
   at Microsoft.WindowsAzure.Storage.Core.Util.StorageAsyncResult`1.End()
   at Microsoft.WindowsAzure.Storage.Blob.CloudBlockBlob.EndUploadFromStream(IAsyncResult asyncResult)
   at Microsoft.WindowsAzure.Storage.Core.Util.AsyncExtensions.<>c__DisplayClass7.<CreateCallbackVoid>b__5(IAsyncResult ar)
--- End of stack trace from previous location where exception was thrown ---
   at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)
   at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
   at HardwarePortal.HardwareIngestionClient.<UploadFileToBlobAsync>d__25.MoveNext() in D:\HardwareIngestionClient.cs:line 163
   --- End of inner exception stack trace ---
   at System.Threading.Tasks.Task.ThrowIfExceptional(Boolean includeTaskCanceledExceptions)
   at System.Threading.Tasks.Task.Wait(Int32 millisecondsTimeout, CancellationToken cancellationToken)
   at System.Threading.Tasks.Task.Wait()
   at HardwarePortal.ProductSubmissionUpdateSample.RunProductSubmissionUpdateSample(Boolean verbose, Boolean x64) in D:\ProductSubmissionUpdateSample.cs:line 90

Logging into Partner Center and uploading the file works.

I've reviewed permissions and compared the in-house implementation with the sample.

If this looks familiar, please let me know.

Thank you,
Călin

We ran into the same problem last week. Microsoft support pointed us to this blog post from July, which ultimately allowed us to solve our problem.

I suggested to them that they should consider other outlets for communicating critical production-breaking information. I also suggested updating the Hardware Dashboard API examples. They appear to have acted on that very quickly, as they have removed the C# example which still used the old APIs: Hardware dashboard API - Windows drivers | Microsoft Learn

1 Like

Thank you, I'm working on it.

1 Like