Task Canceled Exception while invoking AWS Lambda

0 votes

I am hitting an unhandled TaskCanceledException every time my code invokes an AWS Lambda. The code runs on an Android device. (It's written in C# with Xamarin.Android and references AWSSDK

.Core, AWSSDK.Lambda).

  1. Why is the task timing out? [Update: this has been figured out]
  2. Why isn't the exception handled?
  3. Why can't I see any diagnostics from AWS SDK for .NET in the logs?


public class SomeActivity: Activity
    private AmazaonLambdaClient mAWSLambdaClient;

    protected override void OnCreate(Bundle savedInstanceState)

        FindViewById(...).Click += ButtonClickAsync;

        // System.Diagnostics.Trace redirects to Log.Debug with TAG="System.Diagnostics.Trace"
        System.Diagnostics.Trace.Listeners.Add(new MyAndroidTraceListener("System.Diagnostics.Trace"));
        System.Diagnostics.Trace.TraceInformation("Android trace listener installed");

        // AWS logs to System.Diagnostics
        AWSConfigs.LoggingConfig.LogTo = LoggingOptions.SystemDiagnostics;
        AWSConfigs.LoggingConfig.LogResponses = ResponseLoggingOption.Always;

    protected override void OnStart()

        var idToken = ...
        var awsCredentials = new CognitoAWSCredentials("IdentityPoolID", AWSConfig.RegionEndpoint);
        awsCredentials.AddLogin("accounts.google.com", idToken);

        mAWSLambdaClient = new AmazonLambdaClient(awsCredentials, AWSConfig.RegionEndpoint);

    protected override void OnStop()

        mAWSLambdaClient = null;

    private async void ButtonClickAsync(object sender, System.EventArgs e)
         await DoSomethingAsync();

    private async Task DoSomethingAsync()
        var lambdaRequest = ...
            var lambdaInvokeTask = mAWSLambdaClient.InvokeAsync(lambdaRequest);
            invokeResponse = await lambdaInvokeTask; <= VS breaks here after ~30 to 60 seconds
        catch (TaskCanceledException e) // also tried catching Exception, no luck
            Log.Error(TAG, "Lambda Task Canceled: {0}, {1}", e.Message, e.InnerException);

Visual Studio breaks on the await line, telling me I have an unhandled TaskCanceledException: a task was canceled. Weird I do handle that exception. After the unhandled exception, I check the Device Log in Visual Studio. I filter by TAG="System.Diagnostics.Trace" and all I find is:

base apk Information 0:
Android trace listener installed

Where is the AWS SDK log I should have gotten according to logging-with-the-aws-sdk-for-net?


I've figured out question 1, why it times out. It was due to a lambdaRequest with a bad PayloadStream set to a MemoryStream whose position had not been reset to 0 after JSON serializing an object to the stream.

I have not figured out why 2, the exception wasn't handled by the try/catch, and 3, why AWS SDK did not log as requested.

Sep 19, 2018 in AWS by bug_seeker
• 14,960 points

1 answer to this question.

Your answer

Your name to display (optional):
Privacy: Your email address will only be used for sending these notifications.
0 votes
I'm guessing either the TaskCanceledException instance is not from the same namespace your code is expecting in the catch statement, or it is being thrown from the line just above your try-catch, i.e mAWSLambdaClient.InvokeAsync(lambdaRequest). What happens if you move that line and possibly more lines inside the try-catch block?

If this doesn't help, please post the stack trace.
answered Sep 19, 2018 by Priyaj
• 56,100 points

Related Questions In AWS

0 votes
1 answer

AWS Lambda Provisioning Business Logic

AWS Lambda's main function is to reuse ...READ MORE

answered Apr 17, 2018 in AWS by Cloud gunner
• 4,240 points
0 votes
4 answers

Renaming AWS Lambda function

Nope- the function name is immutable READ MORE

answered Mar 6 in AWS by anonymous
+2 votes
3 answers
0 votes
1 answer
0 votes
1 answer
+1 vote
10 answers

© 2018 Brain4ce Education Solutions Pvt. Ltd. All rights Reserved.
"PMP®","PMI®", "PMI-ACP®" and "PMBOK®" are registered marks of the Project Management Institute, Inc. MongoDB®, Mongo and the leaf logo are the registered trademarks of MongoDB, Inc.