Skip to content

[BUG] UnexpectedJsonEventException reading task that failed #666

Open
@uriofferup

Description

@uriofferup

What is the bug?

Failed to serialize JSON response when reading a task that failed to execute.

How can one reproduce the bug?

Run any operation using waitForCompletiong(false) that fail to execute (for example due to versioning issue).
Then read the taskId returned:

GetTasksRequest getTasksRequest = GetTasksRequest.of(t -> t.taskId(osTask.getTaskId()));
GetTasksResponse getTasksResponse = openSearchClient.tasks().get(getTasksRequest);

What is the expected behavior?

Deserialize the response into the GetTasksResponse object.

What is your host/environment?

AWS Lambda
ElasticSearch 7.10

Do you have any screenshots?

Executing /_tasks/
Gets this:

{
  "completed": true,
  "task": {
    "node": "xjAO-PN5TKarvcLhJmHfcA",
    "id": 47102523527,
    "type": "transport",
    "action": "indices:data/write/update/byquery",
    "status": {
      "total": 152,
      "updated": 151,
      "created": 0,
      "deleted": 0,
      "batches": 6,
      "version_conflicts": 1,
      "noops": 0,
      "retries": {
        "bulk": 0,
        "search": 0
      },
      "throttled_millis": 0,
      "requests_per_second": -1,
      "throttled_until_millis": 0,
      "slices": [
        {
          "slice_id": 0,
          "total": 26,
          "updated": 26,
          "created": 0,
          "deleted": 0,
          "batches": 1,
          "version_conflicts": 0,
          "noops": 0,
          "retries": {
            "bulk": 0,
            "search": 0
          },
          "throttled_millis": 0,
          "requests_per_second": -1,
          "throttled_until_millis": 0
        },
        {
          "slice_id": 1,
          "total": 23,
          "updated": 23,
          "created": 0,
          "deleted": 0,
          "batches": 1,
          "version_conflicts": 0,
          "noops": 0,
          "retries": {
            "bulk": 0,
            "search": 0
          },
          "throttled_millis": 0,
          "requests_per_second": -1,
          "throttled_until_millis": 0
        },
        {
          "slice_id": 2,
          "total": 29,
          "updated": 29,
          "created": 0,
          "deleted": 0,
          "batches": 1,
          "version_conflicts": 0,
          "noops": 0,
          "retries": {
            "bulk": 0,
            "search": 0
          },
          "throttled_millis": 0,
          "requests_per_second": -1,
          "throttled_until_millis": 0
        },
        {
          "slice_id": 3,
          "total": 19,
          "updated": 18,
          "created": 0,
          "deleted": 0,
          "batches": 1,
          "version_conflicts": 1,
          "noops": 0,
          "retries": {
            "bulk": 0,
            "search": 0
          },
          "throttled_millis": 0,
          "requests_per_second": -1,
          "throttled_until_millis": 0
        },
        {
          "slice_id": 4,
          "total": 30,
          "updated": 30,
          "created": 0,
          "deleted": 0,
          "batches": 1,
          "version_conflicts": 0,
          "noops": 0,
          "retries": {
            "bulk": 0,
            "search": 0
          },
          "throttled_millis": 0,
          "requests_per_second": -1,
          "throttled_until_millis": 0
        },
        {
          "slice_id": 5,
          "total": 25,
          "updated": 25,
          "created": 0,
          "deleted": 0,
          "batches": 1,
          "version_conflicts": 0,
          "noops": 0,
          "retries": {
            "bulk": 0,
            "search": 0
          },
          "throttled_millis": 0,
          "requests_per_second": -1,
          "throttled_until_millis": 0
        }
      ]
    },
    "description": "update-by-query [phoenix-2023-07-01-all_categories] updated with Script{type=inline, lang='painless', idOrCode='ctx._source.owner=[\"last_active\":params.last_active];', options={}, params={last_active=2023-10-10T21:14:20Z}}",
    "start_time_in_millis": 1697057871665,
    "running_time_in_nanos": 75386100,
    "cancellable": true,
    "headers": {}
  },
  "response": {
    "took": 73,
    "timed_out": false,
    "total": 152,
    "updated": 151,
    "created": 0,
    "deleted": 0,
    "batches": 6,
    "version_conflicts": 1,
    "noops": 0,
    "retries": {
      "bulk": 0,
      "search": 0
    },
    "throttled": "0s",
    "throttled_millis": 0,
    "requests_per_second": -1,
    "throttled_until": "0s",
    "throttled_until_millis": 0,
    "slices": [
      {
        "slice_id": 0,
        "total": 26,
        "updated": 26,
        "created": 0,
        "deleted": 0,
        "batches": 1,
        "version_conflicts": 0,
        "noops": 0,
        "retries": {
          "bulk": 0,
          "search": 0
        },
        "throttled": "0s",
        "throttled_millis": 0,
        "requests_per_second": -1,
        "throttled_until": "0s",
        "throttled_until_millis": 0
      },
      {
        "slice_id": 1,
        "total": 23,
        "updated": 23,
        "created": 0,
        "deleted": 0,
        "batches": 1,
        "version_conflicts": 0,
        "noops": 0,
        "retries": {
          "bulk": 0,
          "search": 0
        },
        "throttled": "0s",
        "throttled_millis": 0,
        "requests_per_second": -1,
        "throttled_until": "0s",
        "throttled_until_millis": 0
      },
      {
        "slice_id": 2,
        "total": 29,
        "updated": 29,
        "created": 0,
        "deleted": 0,
        "batches": 1,
        "version_conflicts": 0,
        "noops": 0,
        "retries": {
          "bulk": 0,
          "search": 0
        },
        "throttled": "0s",
        "throttled_millis": 0,
        "requests_per_second": -1,
        "throttled_until": "0s",
        "throttled_until_millis": 0
      },
      {
        "slice_id": 3,
        "total": 19,
        "updated": 18,
        "created": 0,
        "deleted": 0,
        "batches": 1,
        "version_conflicts": 1,
        "noops": 0,
        "retries": {
          "bulk": 0,
          "search": 0
        },
        "throttled": "0s",
        "throttled_millis": 0,
        "requests_per_second": -1,
        "throttled_until": "0s",
        "throttled_until_millis": 0
      },
      {
        "slice_id": 4,
        "total": 30,
        "updated": 30,
        "created": 0,
        "deleted": 0,
        "batches": 1,
        "version_conflicts": 0,
        "noops": 0,
        "retries": {
          "bulk": 0,
          "search": 0
        },
        "throttled": "0s",
        "throttled_millis": 0,
        "requests_per_second": -1,
        "throttled_until": "0s",
        "throttled_until_millis": 0
      },
      {
        "slice_id": 5,
        "total": 25,
        "updated": 25,
        "created": 0,
        "deleted": 0,
        "batches": 1,
        "version_conflicts": 0,
        "noops": 0,
        "retries": {
          "bulk": 0,
          "search": 0
        },
        "throttled": "0s",
        "throttled_millis": 0,
        "requests_per_second": -1,
        "throttled_until": "0s",
        "throttled_until_millis": 0
      }
    ],
    "failures": [
      {
        "index": "phoenix-2023-07-01-all_categories",
        "type": "_doc",
        "id": "050aecc6-55d2-3ff4-9c6a-7672b8c31e8e",
        "cause": {
          "type": "version_conflict_engine_exception",
          "reason": "[050aecc6-55d2-3ff4-9c6a-7672b8c31e8e]: version conflict, required seqNo [392388470], primary term [1]. current document has seqNo [399875031] and primary term [1]",
          "index_uuid": "jOv6Zv19Td-EY0IJBE09qw",
          "shard": "3",
          "index": "phoenix-2023-07-01-all_categories"
        },
        "status": 409
      }
    ]
  }
}

Error Obtained is:

org.opensearch.client.json.UnexpectedJsonEventException: Unexpected JSON event 'START_OBJECT' instead of '[KEY_NAME, VALUE_STRING, VALUE_NUMBER, VALUE_TRUE, VALUE_FALSE]'
	at org.opensearch.client.json.JsonpUtils.ensureAccepts(JsonpUtils.java:82) ~[task/:?]
	at org.opensearch.client.json.JsonpDeserializerBase$ArrayDeserializer.deserialize(JsonpDeserializerBase.java:352) ~[task/:?]
	at org.opensearch.client.json.JsonpDeserializerBase$ArrayDeserializer.deserialize(JsonpDeserializerBase.java:322) ~[task/:?]
	at org.opensearch.client.json.JsonpDeserializer.deserialize(JsonpDeserializer.java:88) ~[task/:?]
	at org.opensearch.client.json.ObjectDeserializer$FieldObjectDeserializer.deserialize(ObjectDeserializer.java:85) ~[task/:?]
	at org.opensearch.client.json.ObjectDeserializer.deserialize(ObjectDeserializer.java:189) ~[task/:?]
	at org.opensearch.client.json.ObjectDeserializer.deserialize(ObjectDeserializer.java:150) ~[task/:?]
	at org.opensearch.client.json.JsonpDeserializer.deserialize(JsonpDeserializer.java:88) ~[task/:?]
	at org.opensearch.client.json.ObjectBuilderDeserializer.deserialize(ObjectBuilderDeserializer.java:92) ~[task/:?]
	at org.opensearch.client.json.DelegatingDeserializer$SameType.deserialize(DelegatingDeserializer.java:56) ~[task/:?]
	at org.opensearch.client.json.ObjectDeserializer$FieldObjectDeserializer.deserialize(ObjectDeserializer.java:85) ~[task/:?]
	at org.opensearch.client.json.ObjectDeserializer.deserialize(ObjectDeserializer.java:189) ~[task/:?]
	at org.opensearch.client.json.ObjectDeserializer.deserialize(ObjectDeserializer.java:150) ~[task/:?]
	at org.opensearch.client.json.JsonpDeserializer.deserialize(JsonpDeserializer.java:88) ~[task/:?]
	at org.opensearch.client.json.ObjectBuilderDeserializer.deserialize(ObjectBuilderDeserializer.java:92) ~[task/:?]
	at org.opensearch.client.json.DelegatingDeserializer$SameType.deserialize(DelegatingDeserializer.java:56) ~[task/:?]
	at org.opensearch.client.transport.rest_client.RestClientTransport.decodeResponse(RestClientTransport.java:325) ~[task/:?]
	at org.opensearch.client.transport.rest_client.RestClientTransport.getHighLevelResponse(RestClientTransport.java:291) ~[task/:?]
	at org.opensearch.client.transport.rest_client.RestClientTransport.performRequest(RestClientTransport.java:144) ~[task/:?]
	at org.opensearch.client.opensearch.tasks.OpenSearchTasksClient.get(OpenSearchTasksClient.java:123) ~[task/:?]

Do you have any additional context?

Object org.opensearch.client.opensearch.tasks.Status has a field failures defined as a String[].

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugSomething isn't working

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions