Restsharp - Cannot get error response body - xamarin.ios

I am using current (106.5.4) version of RestSharp with Xamarin.iOS and MvvmCross. I works very well (automatic body serialization, deserialization etc.), however I am having hard time getting error response body.
If there is a response from server with error code 4xx or 5xx I get just strange exception in top level of my code that says
"Error getting response stream (ReadAsync): ReceiveFailure Value
cannot be null. Parameter name: src"
Only when I use "Catch All Exceptions" in visual studio I can see the real exception down in call stack. Even though there is no way how to access the body. Accessing the body would be extremely helpful because the server can say there what is wrong with the request.
Am I missing anything, or there is no way in RestSharp?
Thank you for any response

Related

How do I register 400 errors in Azure Function Apps as failures in Application Insights?

I want to treat 4xx HTTP responses from a function app (e.g. a 400 response after sending a HTTP request to my function app) as failures in application insights. The function app is being called by another service I control so a 4xx response probably means an implementation error and so I'd like to capture that to ultimately run an alert on it (so I can get an email instead of checking into Azure everytime).
If possible, I'd like it to appear here:
If not, are there any alternative approaches that might fit my use case?
Unless an unhandled exception occurs the function runtime will mark the invocation as succesful, whether the status code is actually denoting an error or not. Since this behavior is defined by the runtime there are 2 things you can do: throw an exception in the code of the function and/or remove exception handling so the invocation is marked as not succesful.
Since you ultimately want to create an alert, you better alert on this specific http status code using a "Custom log search" alert
requests
| where toint(resultCode) >= 400

LoadRunner replay error : Action.c(312): Error -26630: HTTP Status-Code=401 (Unauthorized)

I have co-related all the required dynamic values, added cookies & headers in the recorded load test script. But, I can't able to get a successful login into the application.
It throws an error Action.c(312): Error -26630: HTTP Status-Code=401 (Unauthorized) in the login transaction itself.
Action.c(312): Error -26630: HTTP Status-Code=401 (Unauthorized) for "https://myapplicationURL" [MsgId: MERR-26630]
Is there any other missing values need to be added in the script, Please let me know.
Thanks in advance.
Seems that you haven't correlated the the dynamic values. Or the credentials that you are using are not valid.
You can debug this problem by looking into the snapshots of your previous requests.

Azure app service some requests returns 400 Bad Request. The request could not be understood by the server due to malformed syntax

So we have a simple .net core 5.0 service that only serves some simple pages with mvc. We are starting to get 400 Errors (details below) on some of the requests. Our frontend is embedded in an iframe which forces us to use our own domain for our api-calls. The 400 errors disappears when we use the azure internal-urls. (*.azurewebsites.net instead of *.ourdomain.net). When I get to the "diagnose and solve problems" -> "availability and performance" -> HTTP 4XX ERRORS i can se below errors. Any ideas on what can cause this error?
Bad Request. The request could not be understood by the server due to malformed syntax. The client should not repeat the request without modifications.
So, the biggest problem above is that we do not get the correct errormessage. After a lot of experimentation we activated the ConnectionLogging for Kestrel.
WebHost.CreateDefaultBuilder(args)
.UseKestrel(options =>
{
options.ConfigureEndpointDefaults(listenOptions =>
{
listenOptions.UseConnectionLogging();
});
})
And after that we found some more intressting logs. One that said:
Connection id "0HMFSA73IA4LS" bad request data: "Malformed request: invalid headers."
Microsoft.AspNetCore.Server.Kestrel.Core.BadHttpRequestException: Malformed request: invalid headers.
After some more investigation we could diff a succesful request from a failing request. And the problem was related to the certificate of *.ourdomain.se. In a part of the certificate we hade a string thats named "Stockholms län" in the cases where it failed the string decoded to l�n and when it succeeded the string decoded to l%C3%A4n. We are now investigating if this is a load balancer problem. But this app is running hostingmodel outofprocess. By changing this to inprocess and wrap our Kestrel in IIS the errors disapears.

Dialogflow Webhook call failed. Error: [ResourceName error] Path '' does not match template

I am using Dialogflow ES and once I got the webhook setup, I haven't been having issues. But after a few months, I just started getting a random error. It seems to be inconsistent as in sometimes I get it for a specific web call and other times it works fine. This is from the Raw API response:
"webhookStatus": {
"code": 3,
"message": "Webhook call failed. Error: [ResourceName error] Path '' does not match template 'projects/{project_id=*}/locations/{location_id=*}/agent/environments/{environment_id=*}/users/{user_id=*}/sessions/{session_id=*}/contexts/{context_id=*}'.."
}
The webhook is in GCP Functions in the same project. I have a simple "ping" function in the same agent that calls the webhook. That works properly and pings the function, records some notes in the function log (so I know the function is being called), and returns a response fine, so I know the webhook is connected and working for other intents in the same agent before and after I get the error above.
Other intents in the same agent work (and this one WAS working), but I get this error now. I also tried recreating the intent and I get the same behavior.
The project is linked to a billing account and I have been getting charged for it, so I don't think it is an issue with being on a trial or otherwise. Though the Dialogflow itself is in "trial", but the linked webhook function is billed.
Where can I find what this error means or where to look to resolve it?
After looking at this with fresh eyes, I found out what was happening.
The issue was a mal-formed output context. I was returning the bad output context sometimes (which explained why sometimes it worked and sometimes it didn't). Specifically, I was returning the parameters directly into the output context without the output context 'name' or 'parameters'. Everything looked like it was working and I didn't get any other errors, but apparently, when Dialogflow receives a bad web response, it generates the unhelpful error above.

ServiceStack: AppHost.OnRequestEndCallbacks handler gets called twice when an exception is thrown outside of a service

I have a snippet in the OnEndRequestCallbacks block of the app host that records a row in an audit table for business purposes. The unexpected behavior is that when a request fails for some reason outside of a service (exception thrown), the endrequest event gets hit twice, and so 2 requests are audited instead of 1. This specific error is happening in the JwtAuthProvider when the token is expired. The exception funnels through as you would expect, but hits the end request callbacks handler twice. I added a snippet in the UncaughtExceptionHandlers block to write the error and end the request, but that doesn't seem to work, and 'two' requests are logged anyway. This was happening when I was getting exceptions in a Request Filter, but adding the snippet to write an error to the response and end the request worked in fixing the duplicates there. The same approach does not seem to work in the global handler in the same way.
This should now be resolved from this commit.
This change is available from v5.6.1+ that's now available on MyGet.

Resources