QuickBooksDev
QuickBooksDev

Reputation: 135

quickbooks online sdk v3 how to troubleshot a badrequest/ValidationException

When debugging a program using the QuickBooks Online API V3 with the SDK. How do you troubleshoot a bad request coming from DataServices. I have gone through several layers of the Exception innerExceptions and I only see ValidationException.

But what tripped the validation exception???

Is there a log to see what caused the problem?

Upvotes: 1

Views: 2588

Answers (5)

UJS
UJS

Reputation: 861

Simply collect the Error Message coming from Quickbook API. Make following the first catch block statement:

catch (Intuit.Ipp.Exception.IdsException ex)
{
   string errorMessage = (((Intuit.Ipp.Exception.ValidationException)(ex.InnerException)).InnerExceptions.FirstOrDefault() ?? new Exception()).Message;
   // you can further log the error .
}

Upvotes: 0

MvcCmsJon
MvcCmsJon

Reputation: 609

            catch (Intuit.Ipp.Exception.IdsException ex)
            {
                //TODO: handle dupe or other....
                var returnMessage = string.Empty;
                var innerException = ((Intuit.Ipp.Exception.ValidationException)(ex.InnerException)).InnerExceptions.FirstOrDefault();
                if (innerException != null)
                {
                    returnMessage = innerException.Message;
                }
            } 

Upvotes: 3

Jesus Mogollon
Jesus Mogollon

Reputation: 616

I just found out this when looking deeply into the exception generated.

Generally speaking you will get an exception and you check if the inner exception object is not null or nothing, if it has an inner exception you look at it.

You will notice that every exception also has a property called "InnerExceptions" (plural) which is a list containing inner exceptions, this property will be null when you have a proper inner exception, but in the last one (in my case) when the inner exception property is null this list contains one inner exception with the details.

This property is available on Intuit.Ipp.Exception.IdsException and contain a list of IdsError

I'm using the IPP .Net SDK 3.0 API (version 2.0.2.0)

Upvotes: 1

Manas Mukherjee
Manas Mukherjee

Reputation: 5340

Please mention which SDK(JAVA/.NET/PHP) you are using.

https://developer.intuit.com/docs/0025_quickbooksapi/0055_devkits

You can set the logger to debug mode to capture the raw request and response XMLs. From the response XML, you'll get the details of failure(if any).

Otherwise, you can call these endpoints directly from APIExplorer.

https://developer.intuit.com/apiexplorer?apiname=V3QBO

Thanks

Upvotes: 0

nimisha shrivastava
nimisha shrivastava

Reputation: 2367

For .Net SDK please enable request/response logs. Th details for bad exception get saved in these files. https://developer.intuit.com/docs/0025_quickbooksapi/0055_devkits/0150_ipp_.net_devkit_3.0/logging

Upvotes: 0

Related Questions