microsoftgraph / microsoftgraph/msgraph-sdk-java

Issue with delta query causing JsonSyntaxException / EOFException in Java SDK 5.80.0

Open
#2,447 0 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

status:waiting-for-triage type:bug
Dominant language
Java
Stars
444
Forks
154
Avg merge
18h 28m
Merged PRs (30d)
4

Description

Describe the bug

SDK Version
com.microsoft.graph:microsoft-graph:5.80.0

API Endpoint

`GET https://graph.microsoft.com/v1.0/users/{user-id}/mailFolders('{folder-id}')/messages/delta?$skiptoken={...}

Error Trace

java.io.EOFException: End of input at line 1 column 6561 path $.value[7]
	at com.google.gson.stream.JsonReader.nextNonWhitespace(JsonReader.java:1542)
	at com.google.gson.stream.JsonReader.doPeek(JsonReader.java:550)
	at com.google.gson.stream.JsonReader.hasNext(JsonReader.java:498)
	at com.google.gson.internal.bind.TypeAdapters$28.read(TypeAdapters.java:875)
...
Wrapped by: com.google.gson.JsonSyntaxException: java.io.EOFException: End of input at line 1 column 6561 path $.value[7]
	at com.google.gson.Gson.fromJson(Gson.java:1370)
	at com.microsoft.graph.serializer.DefaultSerializer.deserializeObject(DefaultSerializer.java:104)
	at com.microsoft.graph.http.CoreHttpProvider.handleJsonResponse(CoreHttpProvider.java:536)

Problem Description
When invoking the delta query on a mail folder using $skiptoken, the response causes a JsonSyntaxException due to malformed or truncated JSON — specifically during deserialization of the response.

It consistently fails at $.value[7], suggesting an incomplete or malformed JSON payload returned by the API or a decoding issue inside the SDK.

Expected behavior

The SDK should either:

Deserialize the full JSON response correctly;

Or raise a controlled exception indicating an incomplete/malformed response from the API.

How to reproduce

Call delta() on a MailFolder with large volume of messages.

Use the returned $skiptoken for the next page.

Observe the failure in Gson during deserialization of response.

Additional information
Status: 200, Headers: java.net.http.HttpHeaders@c17d2c61 { {:status=[200], cache-control=[private], client-request-id=[73d4281b-34fb-4316-8593-3141f23182ce], content-type=[application/json; odata.metadata=minimal; odata.streaming=false; IEEE754Compatible=false; charset=utf-8], date=[Fri, 25 Jul 2025 09:17:30 GMT], request-id=[73d4281b-34fb-4316-8593-3141f23182ce], strict-transport-security=[max-age=31536000], x-ms-ags-diagnostic=[{"ServerInfo":{"DataCenter":"East US","Slice":"E","Ring":"5","ScaleUnit":"004","RoleInstance":"BL02EPF00040ECF"}}]} }

SDK Version

5.80.0

Latest version known to work for scenario above?

No response

Known Workarounds

No response

Debug output
Click to expand log ```
</details>


### Configuration

_No response_

### Other information

_No response_

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start at DefaultSerializer.java and CoreHttpProvider.java, where the reported stack trace shows response deserialization, and reproduce the mail-folder messages delta request using a large result set and $skiptoken. Compare the HTTP response body with the failure at $.value[7]. Done means the SDK handles the response without an uncontrolled JsonSyntaxException or clearly reports an incomplete response.

Written by the indexing model from the issue text.

Assessment

Tech stack
java
Domain
api
Issue type
Bug
Difficulty
4/5
Estimated time
3-5 days
Activity status
Stale
Clarity
Needs clarification
Newbie friendliness
35/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.