MC を REST Call した際に 500 エラー が発生する


Management Console (リポジトリ) のREST CALL 機能を利用してロボットを呼び出した際に、

 500 Internal Server Error



You will then have to update the file to record more information by altering the first line to this:

log4j.rootLogger=DEBUG, file

The file is located here:



(Kapow Katalyst 9.1 以前の場合)

Settings ツールより Logging の対象に Log4jを追加のうえ、RoboServer再起動


(Kapow Katalyst 9.2 以降の場合)

MC の Cluster Settings にてLogging の対象に Log4jを追加の上、Save


log4j 設定後、再度同じエラーが発生し、かつlog4j ログ内に以下の記述がある場合。

 x-exception-message: There are no available slots on the cluster named …

ロボサーバ上で一度に実行できるロボット数(-maxConcurrentRobots)の上限に達しており、REST Call によるロボット実行ができなかったという意味である。

これは、通常APIやスケジューラから起動されたロボットの場合上限を超えた呼び出しはQUEUEに入るのに対し、REST Call に拠る場合はQUEUEに入ることなくエラーとして呼び出しもとに返すという仕様による。(Standard Edition におけるRESTの同時呼び出し数が40に制限されている問題とは異なる。)

That error message is telling us that at that time when the REST service was called, that the RoboServer was already running as many robots as it could. That is a different message than the 40 concurrent REST services because that is a limitation of the Mgmt Console application and not a message from RoboServer.

REST requests cannot be queued like normal robot execution requests so if the RoboServer cannot process the robot execution request when the REST service is called, then the request will fail. The RoboServers in the CLUSTER where the REST service was sent reported back that it had no available execution slots and therefore the error occurred.




(Kapow Katalyst 9.1 以前の場合)

RoboServer 起動時のパラメータで maxConcurrentRobots の数を調整

(Kapow Katalyst 9.2 以降の場合)

MC の Cluster Settings にて Robot Execution の数を調整

当該エラーが発生した場合には、しばらく時間をおいてから、再度REST CALLを実施するようにロボットを修正する。

Q1. Is it possible to confirm how many slots were used at that time by log4j log I attached before? and how?
—Robot executions are logged in log4j so you could search through the logs to see what robots were running when you got the error message.

Q2. As a specification of Kapow 9.0 standard edition , how many slots can we use at a time ? and is it possible to change?
—The default number of “max concurrent robots” is 20 and can be changed as a startup parameter from the command line or as a service. You can read about the different parameters here:

Q3. Are there any choice as a workaround other than retry?
—No. When you call a REST service the robot either starts if there are available execution slots or it fails. If it fails you must retry as robots called through the API are not queued as they are through the Management Console.