microsoftgraph / msgraph-sdk-android

Microsoft Graph SDK for Android! https://graph.microsoft.io
Other
51 stars 43 forks source link

Error message: The $filter expression must evaluate to a single boolean value. #29

Closed kumaraish closed 7 years ago

kumaraish commented 8 years ago

This is the call that threw this error

    final Option option = new QueryOption("filter", "folder");
    List<DriveItem> items = graphServiceClient
            .getMe()
            .getDrive()
            .getRoot()
            .getSearch("foldername")
            .buildRequest(Collections.singletonList(option))
            .get().getCurrentPage();

Exception -

 D/DefaultHttpProvider[sendRequestInternal] - 239: Response code 500, Internal Server Error
 D/DefaultHttpProvider[sendRequestInternal] - 244: Handling error response
 D/NativeCrypto: ssl=0x7f6256fb80 sslRead buf=0x7f624cc800 len=2048,timeo=0
 D/DefaultSerializer[deserializeObject] - 67: Deserializing type GraphErrorResponse
 E/DefaultHttpProvider[sendRequestInternal] - 286: Error during http request [This is an unexpected error from Graph, please report this at https://github.com/microsoftgraph/msgraph-sdk-android/issues]
 E/DefaultHttpProvider[sendRequestInternal] - 286: Error code: generalException
 E/DefaultHttpProvider[sendRequestInternal] - 286: Error message: The $filter expression must evaluate to a single boolean value.
 E/DefaultHttpProvider[sendRequestInternal] - 286: GET https://graph.microsoft.com/v1.0/me/drive/root/microsoft.graph.search(q='foldername')?filter=folder
 E/DefaultHttpProvider[sendRequestInternal] - 286: SdkVersion : graph-android-v0.9.4
 E/DefaultHttpProvider[sendRequestInternal] - 286: Authorization : bearer ...
 E/DefaultHttpProvider[sendRequestInternal] - 286: 500 : Internal Server Error
 E/DefaultHttpProvider[sendRequestInternal] - 286: Duration : 1140.6077
 E/DefaultHttpProvider[sendRequestInternal] - 286: Cache-Control : private
 E/DefaultHttpProvider[sendRequestInternal] - 286: x-ms-ags-diagnostic : {"ServerInfo":{"DataCenter":"South India","Slice":"SliceB","ScaleUnit":"001","Host":"AGSFE_IN_1","ADSiteName":"MAA"}}
 E/DefaultHttpProvider[sendRequestInternal] - 286: request-id : d28c4144-288b-4edb-bf76-88c8c8de11ab
 E/DefaultHttpProvider[sendRequestInternal] - 286: X-Powered-By : ASP.NET
 E/DefaultHttpProvider[sendRequestInternal] - 286: X-Android-Selected-Protocol : http/1.1
 E/DefaultHttpProvider[sendRequestInternal] - 286: X-Android-Response-Source : NETWORK 500
 E/DefaultHttpProvider[sendRequestInternal] - 286: client-request-id : d28c4144-288b-4edb-bf76-88c8c8de11ab
 E/DefaultHttpProvider[sendRequestInternal] - 286: X-Android-Sent-Millis : 1474316244569
 E/DefaultHttpProvider[sendRequestInternal] - 286: Content-Type : application/json
 E/DefaultHttpProvider[sendRequestInternal] - 286: Date : Mon, 19 Sep 2016 20:17:28 GMT
 E/DefaultHttpProvider[sendRequestInternal] - 286: Server : Microsoft-IIS/8.5
 E/DefaultHttpProvider[sendRequestInternal] - 286: Transfer-Encoding : chunked
 E/DefaultHttpProvider[sendRequestInternal] - 286: X-Android-Received-Millis : 1474316245951
 E/DefaultHttpProvider[sendRequestInternal] - 286: {
 E/DefaultHttpProvider[sendRequestInternal] - 286:    "error": {
 E/DefaultHttpProvider[sendRequestInternal] - 286:       "code": "generalException",
 E/DefaultHttpProvider[sendRequestInternal] - 286:       "message": "The $filter expression must evaluate to a single boolean value.",
 E/DefaultHttpProvider[sendRequestInternal] - 286:       "innerError": {
 E/DefaultHttpProvider[sendRequestInternal] - 286:          "request-id": "d28c4144-288b-4edb-bf76-88c8c8de11ab",
 E/DefaultHttpProvider[sendRequestInternal] - 286:          "date": "2016-09-19T20:17:28"
 E/DefaultHttpProvider[sendRequestInternal] - 286:       }
 E/DefaultHttpProvider[sendRequestInternal] - 286:    }
 E/DefaultHttpProvider[sendRequestInternal] - 286: }
 E/DefaultHttpProvider[sendRequestInternal] - 286: Throwable detail: 
com.microsoft.graph.http.GraphFatalServiceException: [This is an unexpected error from Graph, please report this at https://github.com/microsoftgraph/msgraph-sdk-android/issues]
    Error code: generalException
    Error message: The $filter expression must evaluate to a single boolean value.

    GET https://graph.microsoft.com/v1.0/me/drive/root/microsoft.graph.search(q='foldername')?filter=folder
    SdkVersion : graph-android-v0.9.4
    Authorization : bearer ...

    500 : Internal Server Error
    Duration : 1140.6077
    Cache-Control : private
    x-ms-ags-diagnostic : {"ServerInfo":{"DataCenter":"South India","Slice":"SliceB","ScaleUnit":"001","Host":"AGSFE_IN_1","ADSiteName":"MAA"}}
    request-id : d28c4144-288b-4edb-bf76-88c8c8de11ab
    X-Powered-By : ASP.NET
    X-Android-Selected-Protocol : http/1.1
    X-Android-Response-Source : NETWORK 500
    client-request-id : d28c4144-288b-4edb-bf76-88c8c8de11ab
    X-Android-Sent-Millis : 1474316244569
    Content-Type : application/json
    Date : Mon, 19 Sep 2016 20:17:28 GMT
    Server : Microsoft-IIS/8.5
    Transfer-Encoding : chunked
    X-Android-Received-Millis : 1474316245951
    {
       "error": {
          "code": "generalException",
          "message": "The $filter expression must evaluate to a single boolean value.",
          "innerError": {
             "request-id": "d28c4144-288b-4edb-bf76-88c8c8de11ab",
             "date": "2016-09-19T20:17:28"
          }
       }
    }

    at com.microsoft.graph.http.DefaultHttpProvider.handleErrorResponse(DefaultHttpProvider.java:310)
    at com.microsoft.graph.http.DefaultHttpProvider.sendRequestInternal(DefaultHttpProvider.java:246)
    at com.microsoft.graph.http.DefaultHttpProvider.send(DefaultHttpProvider.java:157)
    at com.microsoft.graph.http.BaseCollectionRequest.send(BaseCollectionRequest.java:89)
    at com.microsoft.graph.generated.BaseDriveItemSearchCollectionRequest.get(BaseDriveItemSearchCollectionRequest.java:53)
iambmelt commented 8 years ago

Thanks for getting in touch @kumaraish - I'll be investigating this issue this morning, and will post my findings, a mitigation [if possible], or a status as to how we're handling this on our end.

iambmelt commented 8 years ago

@kumaraish I see you are running 0.9.4 - are you able to reproduce this error on 1.0.+? I've so far been unable to reproduce this error using either artifact

kumaraish commented 8 years ago

Hi @iambmelt, I have reproduced this with 1.0.+ too.

D/DefaultSerializer[deserializeObject] - 67: Deserializing type GraphErrorResponse
    E/DefaultHttpProvider[sendRequestInternal] - 286: Error during http request [This is an unexpected error from Graph, please report this at https://github.com/microsoftgraph/msgraph-sdk-android/issues]
    E/DefaultHttpProvider[sendRequestInternal] - 286: Error code: generalException
    E/DefaultHttpProvider[sendRequestInternal] - 286: Error message: The $filter expression must evaluate to a single boolean value.
    E/DefaultHttpProvider[sendRequestInternal] - 286: GET https://graph.microsoft.com/v1.0/me/drive/root/microsoft.graph.search(q='foldername')?filter=folder
    E/DefaultHttpProvider[sendRequestInternal] - 286: SdkVersion : graph-android-v1.0.0
    E/DefaultHttpProvider[sendRequestInternal] - 286: Authorization : bearer [...]
    E/DefaultHttpProvider[sendRequestInternal] - 286: 500 : Internal Server Error
    E/DefaultHttpProvider[sendRequestInternal] - 286: Duration : 334.2595
    E/DefaultHttpProvider[sendRequestInternal] - 286: Cache-Control : private
    E/DefaultHttpProvider[sendRequestInternal] - 286: x-ms-ags-diagnostic : {"ServerInfo":{"DataCenter":"South India","Slice":"SliceA","ScaleUnit":"001","Host":"AGSFE_IN_3","ADSiteName":"MAA"}}
    E/DefaultHttpProvider[sendRequestInternal] - 286: request-id : d0ca4138-8bde-4283-8887-eb096ececd2c
    E/DefaultHttpProvider[sendRequestInternal] - 286: X-Powered-By : ASP.NET
    E/DefaultHttpProvider[sendRequestInternal] - 286: X-Android-Selected-Protocol : http/1.1
    E/DefaultHttpProvider[sendRequestInternal] - 286: X-Android-Response-Source : NETWORK 500
    E/DefaultHttpProvider[sendRequestInternal] - 286: client-request-id : d0ca4138-8bde-4283-8887-eb096ececd2c
    E/DefaultHttpProvider[sendRequestInternal] - 286: X-Android-Sent-Millis : 1474444727691
    E/DefaultHttpProvider[sendRequestInternal] - 286: Content-Type : application/json
    E/DefaultHttpProvider[sendRequestInternal] - 286: Date : Wed, 21 Sep 2016 07:58:48 GMT
    E/DefaultHttpProvider[sendRequestInternal] - 286: Server : Microsoft-IIS/8.5
    E/DefaultHttpProvider[sendRequestInternal] - 286: Transfer-Encoding : chunked
    E/DefaultHttpProvider[sendRequestInternal] - 286: X-Android-Received-Millis : 1474444728109
    E/DefaultHttpProvider[sendRequestInternal] - 286: {
    E/DefaultHttpProvider[sendRequestInternal] - 286:    "error": {
    E/DefaultHttpProvider[sendRequestInternal] - 286:       "code": "generalException",
    E/DefaultHttpProvider[sendRequestInternal] - 286:       "message": "The $filter expression must evaluate to a single boolean value.",
    E/DefaultHttpProvider[sendRequestInternal] - 286:       "innerError": {
    E/DefaultHttpProvider[sendRequestInternal] - 286:          "request-id": "d0ca4138-8bde-4283-8887-eb096ececd2c",
    E/DefaultHttpProvider[sendRequestInternal] - 286:          "date": "2016-09-21T07:58:49"
    E/DefaultHttpProvider[sendRequestInternal] - 286:       }
    E/DefaultHttpProvider[sendRequestInternal] - 286:    }
    E/DefaultHttpProvider[sendRequestInternal] - 286: }
    E/DefaultHttpProvider[sendRequestInternal] - 286: Throwable detail: 
        com.microsoft.graph.http.GraphFatalServiceException: [This is an unexpected error from Graph, please report this at https://github.com/microsoftgraph/msgraph-sdk-android/issues]
        Error code: generalException
        Error message: The $filter expression must evaluate to a single boolean value.

        GET https://graph.microsoft.com/v1.0/me/drive/root/microsoft.graph.search(q='foldername')?filter=folder
        SdkVersion : graph-android-v1.0.0
        Authorization : bearer [...]

        500 : Internal Server Error
        Duration : 334.2595
        Cache-Control : private
        x-ms-ags-diagnostic : {"ServerInfo":{"DataCenter":"South India","Slice":"SliceA","ScaleUnit":"001","Host":"AGSFE_IN_3","ADSiteName":"MAA"}}
        request-id : d0ca4138-8bde-4283-8887-eb096ececd2c
        X-Powered-By : ASP.NET
        X-Android-Selected-Protocol : http/1.1
        X-Android-Response-Source : NETWORK 500
        client-request-id : d0ca4138-8bde-4283-8887-eb096ececd2c
        X-Android-Sent-Millis : 1474444727691
        Content-Type : application/json
        Date : Wed, 21 Sep 2016 07:58:48 GMT
        Server : Microsoft-IIS/8.5
        Transfer-Encoding : chunked
        X-Android-Received-Millis : 1474444728109
        {
           "error": {
              "code": "generalException",
              "message": "The $filter expression must evaluate to a single boolean value.",
              "innerError": {
                 "request-id": "d0ca4138-8bde-4283-8887-eb096ececd2c",
                 "date": "2016-09-21T07:58:49"
              }
           }
        }

            at com.microsoft.graph.http.DefaultHttpProvider.handleErrorResponse(DefaultHttpProvider.java:310)
            at com.microsoft.graph.http.DefaultHttpProvider.sendRequestInternal(DefaultHttpProvider.java:246)
            at com.microsoft.graph.http.DefaultHttpProvider.send(DefaultHttpProvider.java:157)
            at com.microsoft.graph.http.BaseCollectionRequest.send(BaseCollectionRequest.java:89)
            at com.microsoft.graph.generated.BaseDriveItemSearchCollectionRequest.get(BaseDriveItemSearchCollectionRequest.java:53)

Where can I found more documentation on what can go as the arguments of QueryOptions?

Though I guess the arguments I am passing here are probably wrong -

    final Option option = new QueryOption("filter", "folder");
    List<DriveItem> items = graphServiceClient
            .getMe()
            .getDrive()
            .getRoot()
            .getSearch("foldername")
            .buildRequest(Collections.singletonList(option))
            .get().getCurrentPage();

Was trying to search for folders that match the title "foldername" and was trying to filter the search results on folder. Though I now I guess this is not QueryOption is for. Probably I should have used .expand(getExpansionOptions())

Still, the exception called for reporting.

peternied commented 8 years ago

@kumaraish Thanks for reporting this service error, the OneDrive team will address the error message as it is not in the correct format.

iambmelt commented 7 years ago

@kumaraish

Where can I found more documentation on what can go as the arguments of QueryOptions?

The OData 4.0 query parameters supported by the Microsoft Graph can be found here