Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

"Empty Payload. JSON content expected." when posting a comment with SDK v6 #2131

Open
k0urge opened this issue Aug 21, 2024 · 1 comment
Open
Labels
dependency:metadata Awaiting fix from core dependency project module type:bug A broken experience

Comments

@k0urge
Copy link

k0urge commented Aug 21, 2024

Describe the bug

"Empty Payload. JSON content expected." error is thrown when trying to add a comment on an Alert v2.

com.microsoft.graph.models.odataerrors.ODataError: Empty Payload. JSON content expected.
	at com.microsoft.graph.models.odataerrors.ODataError.createFromDiscriminatorValue(ODataError.java:36)
	at com.microsoft.kiota.serialization.JsonParseNode.getObjectValue(JsonParseNode.java:212)
	at com.microsoft.kiota.http.OkHttpRequestAdapter.lambda$throwIfFailedResponse$0(OkHttpRequestAdapter.java:674)
	at com.microsoft.kiota.ApiExceptionBuilder.<init>(ApiExceptionBuilder.java:26)
	at com.microsoft.kiota.http.OkHttpRequestAdapter.throwIfFailedResponse(OkHttpRequestAdapter.java:673)
	at com.microsoft.kiota.http.OkHttpRequestAdapter.sendCollection(OkHttpRequestAdapter.java:200)
	at com.microsoft.graph.security.alerts_v2.item.comments.CommentsRequestBuilder.post(CommentsRequestBuilder.java:72)
	at com.microsoft.graph.security.alerts_v2.item.comments.CommentsRequestBuilder.post(CommentsRequestBuilder.java:56)

HTTP response status code is 400 "bad request".

Expected behavior

A comment is created on the alert, without any error.

For instance, posting the same request with Curl works perfectly:

curl -X POST \
  -H "Authorization: Bearer YOUR_ACCESS_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
    "@odata.type": "microsoft.graph.security.alertComment",
    "comment": "Your comment here"
  }' \
  "https://graph.microsoft.com/v1.0/security/alerts_v2/{alertId}/comments"

How to reproduce

I followed the instructions from the documentation (https://learn.microsoft.com/en-us/graph/api/security-alert-post-comments?view=graph-rest-1.0&tabs=java):

GraphServiceClient graphClient = new GraphServiceClient(requestAdapter);

com.microsoft.graph.models.security.AlertComment alertComment = new com.microsoft.graph.models.security.AlertComment();
alertComment.setOdataType("microsoft.graph.security.alertComment");
alertComment.setComment("Demo for docs");
var result = graphClient.security().alertsV2().byAlertId("{alert-id}").comments().post(alertComment);

but converted that code into Kotlin.
The post() method, contrary to the documentation need a list of comments as input instead of a single comment.

val comment = AlertComment()
comment.odataType = "microsoft.graph.security.alertComment"
comment.comment = "my comment"
graphClient.security().alertsV2().byAlertId(alertId).comments().post(listOf(comment))

Debugging the request, I can see that the payload send by the SDK is [{"comment":"my comment","@odata.type":"microsoft.graph.security.alertComment"}] instead of {"comment":"my comment","@odata.type":"microsoft.graph.security.alertComment"} as it should be.

SDK Version

6.13.0

Latest version known to work for scenario above?

unknown

Known Workarounds

No response

Debug output

Click to expand log ```
</details>


### Configuration

_No response_

### Other information

_No response_
@k0urge k0urge added status:waiting-for-triage An issue that is yet to be reviewed or assigned type:bug A broken experience labels Aug 21, 2024
@Ndiritu Ndiritu added dependency:metadata Awaiting fix from core dependency project module and removed status:waiting-for-triage An issue that is yet to be reviewed or assigned labels Aug 27, 2024
@Ndiritu
Copy link
Contributor

Ndiritu commented Aug 27, 2024

Thanks for reporting this @k0urge.

Following up with an upstream team that owns the metadata we generate the SDK from. OpenAPI spec defines a list of comments.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
dependency:metadata Awaiting fix from core dependency project module type:bug A broken experience
Projects
None yet
Development

No branches or pull requests

2 participants