エラー Too many operations declared on operation entry

node.jsから非同期処理を用いて
1.旧indexのindex_name取得
2.旧indexのaliasをremove、新indexに旧につけていたalias名と同じものをaliasとしてadd
3.旧indexの削除

を行ったところタイトルのerrorが出ました。原因は一度に大量のオペレーションを宣言したからということみたいですが、解決策は何がありますでしょうか?

{ StatusCodeError: 400 - {"error":{"root_cause":[{"type":"x_content_parse_exception","reason":"Failed to build [alias_action] after last required field arrived"}],"type":"x_content_parse_exception","reason":"[1:180] [aliases] failed to parse field [actions]","caused_by":{"type":"x_content_parse_exception","reason":"Failed to build [alias_action] after last required field arrived","caused_by":{"type":"illegal_argument_exception","reason":"Too many operations declared on operation entry"}}},"status":400}

ソースを見ますと、大量でなくても1つ以上あればToo many operationsというエラーが出るみたいですね。

Take the first action and complain if there are more than one actions

さて、「非同期処理を用いて」とありますが、1つずつ処理を同期処理で実行した場合にもこのようなエラーになりますでしょうか?

あるいは、この現象が必ず起きるのか、たまたま起きるのか、そのあたりの情報はありますか?
再現手順などがあればそれを書いてもらえると助かります。

回答ありがとうございます。
node.jsのrequestメソッドでjsonを送る時に
jsonの記述にミスがあったことが原因でした。

json: {
actions: [
{ add: { index: newIndexName, alias: alias }
remove: { index: oldIndexName, alias: alias } },
],
},

↑のような形で送ると再現するかと思います。

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