How to get a request fail reason?

Hi everyone!

Sometimes we call ExecuteGetJson<T> method which returns result object with Success property set to false.
When we try to figure out why it is failing, we just stuck. Any properties such as StatusCode or Message or Exception are empty.

Any help would be appreciated!
Thanks!

Which version of the SDK are you using?

1.2.6

Any suggestions?

I also see unknown get failures periodically in a high-load production system. I'm using server 2.0.1 on CentOS, and using the 1.2.4 .NET SDK. I see this problem maybe once per week, so it is fairly rare. I'm using ExecuteGet, and the IGetOperationResult indicates Success==false, but no other information is provided. No message, status code, or exception, and no InnerResult either. My logs aren't currently revealing whether this is a timeout or not, but I plan to instrument my API wrapper to provide timing metrics to make it easier to determine if these are indeed timeouts, or perhaps some other type of transient network failure, which is also possible.

Same thing reproduces with latest version of SDK (1.2.7).

1 Answer

« Back to question.

Try updating to the latest .NET SDK version (1.2.9 at the time of this writing), we added some improvements on handling errors and the messages that are returned, as well some improvements to resource allocation and management.

Now on to the issue: this is usually a symptom of resource exhaustion. Try adjusting the maxPoolSize in the socketPool configuration settings: http://docs.couchbase.com/couchbase-sdk-net-1.2/#appendix-configuring-th...

The default is minPoolSize = 10 and maxPoolSize = 20, but you can adjust the min to anything greater than zero and less than the max.

Figured out that it was maximum document size in couchbase.
We are storing ASP.NET ViewState as binary into couchbase documents.
It was really tricky to diagnose :-( Some error code will significant simplify troubleshooting in such case...