7.11 APIs who don't need a body now return an error when provided with one

Hi,

I have been upgrading one of my clusters to 7.11.1 and much to my surprise there is a behavior change that I haven't been able to find in the breaking changes or in the "what's new" page for this release.

GET _cat/health
{
}

Now returns

{
  "error" : {
    "root_cause" : [
      {
        "type" : "illegal_argument_exception",
        "reason" : "request [GET /_cat/health] does not support having a body"
      }
    ],
    "type" : "illegal_argument_exception",
    "reason" : "request [GET /_cat/health] does not support having a body"
  },
  "status" : 400
}

Now, the problem was in my ansible playbook because my uri module had the body_format: json property set to check for cluster health so it was a good opportunity to clean up my code.

Since I haven't found any mentions of this behavior change in the documentation or in the github issues, I thought I would put it out there for everyone as a head's up. Maybe someone in the elastic team can add it to the documentation?

This also affects POST _flush/synced and many other APIs I suppose.

This is confirmed to work in 7.7.0 and I believe 7.10.2 too but it will return an error in 7.11.1

I also don't see anything in the release notes about this. Would you report it as a bug on Github? I'm not sure whether this was deliberate or not, but we've definitely changed some behaviour between 7.10.2 and 7.11.1.

1 Like

Issue created!

2 Likes

This topic was automatically closed 28 days after the last reply. New replies are no longer allowed.