Edge Microgateway のエラー リファレンス

このトピックでは、Edge Microgateway で発生するエラーと警告について説明します。

一般的なアプリケーション エラー

  • HTTP 500, failed in error handler(エラーハンドラの失敗) - ほとんどのエラー、およびターゲットから返される一部のエラーは、このエラー番号になります。errors-middleware.js は microgateway-core モジュール全体で使用されることに注意してください。これは Edge Microgateway を使用して、ロギングに statusCodes を書き込みます(logger object: logger.error(err, 'failed in error handler');)。ターゲットから受け取った 100~300 のコードは、errors-middleware.js により statusCode を 500 に書き換えてクライアントに返します。

  • HTTP 404 - このステータスは、スタック トレースとして「no match found for [API_path_name]」というメッセージと一緒に生成されます。

モジュールのエラーと警告

この情報を利用してアラートを構成し、Edge Microgateway のデプロイのモニタリングと管理に役立てることができます。

以下の用語はエラー リファレンスの「ハンドラ」の下に表示され、各エラーが Edge Microgateway でどのように処理されるかを示します。

  • assert: 通常、アサートの評価が失敗すると Edge Microgateway は停止します。ただし、「assert」によってスローされた例外がキャッチされる場合もあるため、必ず停止するとは限りません。
  • throws: システムが停止する可能性があります。
  • callback: このエラーはコールバックに渡され、システムは続行します。
メッセージ ハンドラ

microgateway モジュール

エラー org is required assert assert(options.org,"org is required");
エラー env is required assert assert(options.env,"env is required")
エラー username is required assert assert(options.username || options.token,"username is required");
エラー password is required assert assert(options.password || options.token,"password is required")
エラー org is required assert assert(options.org,"org is required");
エラー env is required assert assert(options.env,"env is required")
エラー username is required assert assert(options.username || options.token,"username is required");
エラー password is required assert assert(options.password || options.token,"password is required")
エラー org is required assert assert(options.org,"org is required");
エラー env is required assert assert(options.env,"env is required")
エラー org is required assert assert(options.org,"org is required");
エラー env is required assert assert(options.env,"env is required")
エラー username is required assert assert(options.username, 'username is required');
エラー password is required assert assert(options.password, 'password is required');
エラー org is required assert assert(options.org, 'org is required');
エラー env is required assert assert(options.env, 'env is required');
エラー must have an assigned target file assert assert(targetFile, 'must have an assigned target file')
エラー must have a key assert assert(key, 'must have a key');
エラー must have a secret assert assert(secret, 'must have a secret');
エラー dir must be configured assert assert(dir, 'dir must be configured')
エラー callback must be present assert assert(callback, 'callback must be present')
エラー username is required assert assert(options.username, 'username is required');
エラー password is required assert assert(options.password, 'password is required');
エラー org is required assert assert(options.org, 'org is required');
エラー env is required assert assert(options.env, 'env is required');
エラー runtimeUrl is required assert assert(options.runtimeUrl, 'runtimeUrl is required');
エラー mgmtUrl is required assert assert(options.mgmtUrl, 'mgmtUrl is required');
エラー file is required assert assert(options.file,"file is required")
エラー must have target assert assert(options.target, 'must have target');
エラー plugins not configured assert assert(config.edgemicro.plugins, 'plugins not configured');
エラー plugin dir does not exist: + pluginDir assert assert(fs.existsSync(pluginDir), 'plugin dir does not exist: ' + pluginDir);
エラー plugin dir is not a directory: + pluginDir assert assert(stat.isDirectory(), 'plugin dir is not a directory: ' + pluginDir);
エラー error reading plugin dir: + pluginDir assert assert(dirs, 'error reading plugin dir: ' + pluginDir);
エラー must have a token assert assert(token, 'must have a token');
エラー configpath cant be empty assert assert(config, 'configpath cant be empty');
エラー must have EDGEMICRO_KEY assert assert(key, 'must have EDGEMICRO_KEY');
エラー must have EDGEMICRO_SECRET assert assert(secret, 'must have EDGEMICRO_SECRET');
エラー config does not exist throws yaml ファイルに関連しています
エラー edgemicro seems to be already running. console.error .sock ファイルを上書きしようとしています
エラー Failed to check for change in Config. Will retry after console.error Edge との通信の問題
エラー If the server is not running, it might because of incorrect shutdown of the prevous start. console.error
エラー Missing %s, Please run console.error (.*) がありません、実行してください
エラー Reloading edgemicro was unsuccessful console.error コマンドレベル
エラー Stopping edgemicro was unsuccessful console.error コマンドレベル
エラー 'Try removing ' + ipcPath + ' and start again' console.error
エラー 'cache configuration ' + cache + ' does not exist. exiting.' console.error
エラー config file could not be written: console.error 構成が失敗します
エラー config file did not download: console.error 構成が失敗します
エラー edge micro failed to start console.error 実行しないでください
エラー edgemicro is not running. console.error リストすべきではないプロセスを確認してください
エラー env is required console.error 実行するには環境変数が必要です
エラー error - editing apiproxy Callout.xml console.error ファイル アクセス
エラー error - editing apiproxy default.xml console.error ファイル アクセス
エラー error checking for cert. Installing new cert. console.error 公開鍵は使用できません
エラー error retrieving region for org console.error key-gen.js、cert-lib.js、private.js
エラー error uploading credentials console.error 公開鍵を Edge と同期できません
エラー failed console.error key-gen.js
エラー failed to init configpath file %s console.error 構成が読み込まれていません
エラー invalid response from region api console.error key-gen.js、cert-lib.js、private.js
エラー key is required console.error パラメータ
エラー org is required console.error パラメータ
エラー port is not available. console.error パラメータ
エラー secret is required console.error パラメータ
エラー url protocol not supported: console.error 構成情報には Edge Microgateway の範囲外のインターネット プロトコルが示されています
エラー verifying analytics negative case: FAIL console.error クラッシュまたは失敗の可能性
エラー verifying analytics with payload: FAIL console.error クラッシュまたは失敗の可能性
エラー verifying bootstrap url availability:FAIL console.error クラッシュまたは失敗の可能性
エラー verifying jwt_public_key availability: FAIL console.error クラッシュまたは失敗の可能性
エラー verifying products availability: FAIL console.error クラッシュまたは失敗の可能性
エラー verifying quota with configured products: FAIL console.error クラッシュまたは失敗の可能性
警告 failed to retieve config from gateway. continuing, will try cached copy.. console.error
警告 KVM already exists in your org console.log
警告 is already deployed console.log
警告 sequenced plugin not found: console.warn
警告 pluginDir %s does not exist console.log pluginDir (.*) does not exist

microgateway-core モジュール

エラー config not initialized assert assert(config, 'config not initialized')
エラー must have a config assert assert(config, ' must have a config')
エラー must have config assert assert(config, 'must have config')
エラー config must have uid assert assert(config.uid, 'config must have uid');
エラー must have config.edgemicro.logging in config assert assert(logConfig, 'must have config.edgemicro.logging in config');
エラー must have request method assert assert(httpLibrary.request, 'must have request method');
エラー must have plugin loaded in memory assert assert(options.plugin, "must have plugin loaded in memory");
エラー init must be a function assert assert(_.isFunction(options.plugin.init), 'init must be a function');
エラー must have plugin name assert assert(options.pluginName, "must have plugin name");
エラー ignoring invalid plugin handlers + name assert assert(_.isObject(middleware), 'ignoring invalid plugin handlers ' + name);
エラー options must contain config assert assert(config, 'options must contain config')
エラー plugin must have a name assert assert(name,"plugin must have a name")
エラー name must be a string assert assert(_.isString(name),"name must be a string");
エラー plugin must be a function assert assert(_.isFunction(plugin),"plugin must be a function(config,logger,stats){return {onresponse:function(req,res,data,next){}}}");
エラー must have a key assert assert(key, 'must have a key');
エラー must have a secret assert assert(secret, 'must have a secret');
エラー must have a source config directory assert assert(source, 'must have a source config directory');
エラー error loading plugin console.error プラグインが読み込まれていません
エラー failed in error handler callback HTTP server.on() function
エラー header length more than allowed size HTTP error プラグインを実行しません
エラー response finished before work can be done logger.error ターゲット プラグインを実行しません
エラー handler threw an exception callback プラグインからのエラーをキャプチャします(キャッチ)
エラー error starting edge micro callback Edge Microgateway が起動しません
エラー plugin must be a function throws
警告 console.error warns Log writing
警告 targetRequest error invoke target error handling HTTP client error in connection with target
警告 targetResponse error invoke target error handling ターゲットとの接続での HTTP ターゲット サーバーエラー(クライアント側)

microgateway-config モジュール

エラー allow_message assert assert(+config.quota.allow > 0, allow_message);
エラー config does not exist throws yaml 構成ファイル
エラー config is empty throws yaml 構成ファイル
エラー config is not a file throws yaml 構成ファイル
エラー config is not defined assert assert(config, 'config is not defined');
エラー config.analytics.batchSize is invalid assert assert(+config.analytics.batchSize > 0, 'config.analytics.batchSize is invalid');
エラー config.analytics.batchSize is not a number assert assert(typeof config.analytics.batchSize === 'number', 'config.analytics.batchSize is not a number');
エラー config.analytics.bufferSize is invalid assert assert(+config.analytics.bufferSize > 0, 'config.analytics.bufferSize is invalid');
エラー config.analytics.bufferSize is not a number assert assert(typeof config.analytics.bufferSize === 'number', 'config.analytics.bufferSize is not a number');
エラー config.analytics.flushInterval is invalid assert assert(+config.analytics.flushInterval > 0, 'config.analytics.flushInterval is invalid');
エラー config.analytics.flushInterval is not a number assert assert(typeof config.analytics.flushInterval === 'number', 'config.analytics.flushInterval is not a number');
エラー config.analytics.proxy is not "dummy" assert assert(config.analytics.proxy === 'dummy', 'config.analytics.proxy is not "dummy"');
エラー config.analytics.proxy is not defined assert assert(config.analytics.proxy, 'config.analytics.proxy is not defined');
エラー config.analytics.proxy_revision is not a number assert assert(typeof config.analytics.proxy_revision === 'number', 'config.analytics.proxy_revision is not a number');
エラー config.analytics.proxy_revision is not defined assert assert(config.analytics.proxy_revision, 'config.analytics.proxy_revision is not defined');
エラー config.analytics.source is not "microgateway" assert assert(config.analytics.source === 'microgateway', 'config.analytics.source is not "microgateway"');
エラー config.analytics.source is not defined assert assert(config.analytics.source, 'config.analytics.source is not defined');
エラー config.analytics.uri is not a string assert assert(typeof config.analytics.uri === 'string', 'config.analytics.uri is not a string');
エラー config.analytics.uri is not defined assert assert(config.analytics.uri, 'config.analytics.uri is not defined');
エラー config.apikeys.public_key is not defined assert assert(typeof config.apikeys.public_key === 'string', 'config.apikeys.public_key is not defined');
エラー config.edge_config is not defined assert assert(config.edge_config, 'config.edge_config is not defined');
エラー config.edge_config.bootstrap is not defined assert assert(config.edge_config.bootstrap, 'config.edge_config.bootstrap is not defined');
エラー config.edge_config.jwt_public_key is not defined assert assert(config.edge_config.jwt_public_key, 'config.edge_config.jwt_public_key is not defined');
エラー config.edge_config.proxy must be defined if config.edge_config.proxy_tunnel is defined assert assert(typeof config.edge_config.proxy !== 'undefined', 'config.edge_config.proxy must be defined if config.edge_config.proxy_tunnel is defined');
エラー config.edge_config.proxy_tunnel is not a boolean assert assert(typeof config.edge_config.proxy_tunnel === 'boolean', 'config.edge_config.proxy_tunnel is not a boolean');
エラー config.edge_config.refresh_interval is not a number assert assert(typeof config.edge_config.refresh_interval === 'number', 'config.edge_config.refresh_interval is not a number');
エラー config.edge_config.refresh_interval is too small (min 1h) assert assert(config.edge_config.refresh_interval >= 3600000, 'config.edge_config.refresh_interval is too small (min 1h)');
エラー config.edge_config.retry_interval is not a number assert assert(typeof config.edge_config.retry_interval === 'number', 'config.edge_config.retry_interval is not a number');
エラー config.edge_config.retry_interval is too small (min 5s) assert assert(config.edge_config.retry_interval >= 5000, 'config.edge_config.retry_interval is too small (min 5s)');
エラー config.edgemicro is not defined assert assert(config.edgemicro, 'config.edgemicro is not defined');
エラー config.edgemicro.logging is not defined assert assert(config.edgemicro.logging, 'config.edgemicro.logging is not defined');
エラー config.edgemicro.logging.dir is not defined assert if (!config.edgemicro.logging.to_console) assert(config.edgemicro.logging.dir, 'config.edgemicro.logging.dir is not defined');
エラー config.edgemicro.logging.level is not defined assert assert(config.edgemicro.logging.level, 'config.edgemicro.logging.level is not defined');
エラー config.edgemicro.max_connections is not a number assert assert(typeof config.edgemicro.max_connections === 'number', 'config.edgemicro.max_connections is not a number');
エラー config.edgemicro.max_connections is not defined assert assert(config.edgemicro.max_connections, 'config.edgemicro.max_connections is not defined');
エラー config.edgemicro.plugins.sequence is not an array assert assert(Array.isArray(config.edgemicro.plugins.sequence), 'config.edgemicro.plugins.sequence is not an array');
エラー config.edgemicro.port is not defined assert assert(config.edgemicro.port, 'config.edgemicro.port is not defined');
エラー config.oauth.allowInvalidAuthorization is not defined assert assert(typeof config.oauth.allowInvalidAuthorization === 'boolean', 'config.oauth.allowInvalidAuthorization is not defined');
エラー config.oauth.allowNoAuthorization is not defined assert assert(typeof config.oauth.allowNoAuthorization === 'boolean', 'config.oauth.allowNoAuthorization is not defined');
エラー config.oauth.public_key is not defined assert assert(typeof config.oauth.public_key === 'string', 'config.oauth.public_key is not defined');
エラー config.oauthv2.public_key is not defined assert assert(typeof config.oauthv2.public_key === 'string', 'config.oauthv2.public_key is not defined');
エラー config.proxies is not defined assert assert(config.proxies, 'config.proxies is not defined');
エラー config.proxy[ + index + ].base_path is not defined assert assert(proxy.base_path, 'config.proxy[' + index + '].base_path is not defined');
エラー config.proxy[ + index + ].max_connections is not a number assert assert(typeof proxy.max_connections === 'number', 'config.proxy[' + index + '].max_connections is not a number');
エラー config.proxy[ + index + ].max_connections is not defined assert assert(proxy.max_connections, 'config.proxy[' + index + '].max_connections is not defined');
エラー config.proxy[ + index + ].name is not defined assert assert(proxy.name, 'config.proxy[' + index + '].name is not defined');
エラー config.proxy[ + index + ].proxy_name is not defined assert assert(proxy.target_name, 'config.proxy[' + index + '].proxy_name is not defined');
エラー config.proxy[ + index + ].revision is not defined assert assert(proxy.revision, 'config.proxy[' + index + '].revision is not defined');
エラー config.proxy[ + index + ].url is not defined assert assert(proxy.url, 'config.proxy[' + index + '].url is not defined');
エラー config.quota.allow is not a number assert assert(typeof config.quota.allow === 'number', 'config.quota.allow is not a number');
エラー config.quota.allow is not defined assert assert(config.quota.allow, 'config.quota.allow is not defined');
エラー config.quota.interval is not a number assert assert(typeof config.quota.interval === 'number', 'config.quota.interval is not a number');
エラー config.quota.interval is not defined assert assert(config.quota.interval, 'config.quota.interval is not defined');
エラー config.spikearrest is not defined assert assert(config.spikearrest, 'config.spikearrest is not defined');
エラー config.spikearrest.allow is invalid assert assert(+config.spikearrest.allow > 0, 'config.spikearrest.allow is invalid');
エラー config.spikearrest.allow is not a number assert assert(typeof config.spikearrest.allow === 'number', 'config.spikearrest.allow is not a number');
エラー config.spikearrest.allow is not defined assert assert(config.spikearrest.allow, 'config.spikearrest.allow is not defined');
エラー config.spikearrest.bufferSize is invalid assert assert(+config.spikearrest.bufferSize > 0, 'config.spikearrest.bufferSize is invalid');
エラー config.spikearrest.bufferSize is not a number assert assert(typeof config.spikearrest.bufferSize === 'number', 'config.spikearrest.bufferSize is not a number');
エラー config.spikearrest.timeUnit is not defined assert assert(config.spikearrest.timeUnit, 'config.spikearrest.timeUnit is not defined');
エラー CRITICAL ERROR: error parsing downloaded product list callback
エラー CRITICAL ERROR: error parsing downloaded proxy list callback
エラー DETECTED PRODUCT MISCONFIGURATION ERROR console.error console.warn('using old cached configuration'); が続いて表示される
エラー error reading config from throws yaml 構成ファイル
エラー error saving config to callback yaml 構成ファイル
エラー fatal: cached config not available, unable to continue callback
エラー interval_message assert assert(+config.quota.interval > 0, interval_message);
エラー invalid protocol for config.edge_config.proxy (expected http: or https:: + proxy_url.protocol) assert assert(proxy_url.protocol === 'http:' || proxy_url.protocol === 'https:', 'invalid protocol for config.edge_config.proxy (expected http: or https:): ' + proxy_url.protocol);
エラー invalid proxy host for config.edge_config.proxy assert assert(proxy_url.hostname, 'invalid proxy host for config.edge_config.proxy: ' + proxy_url.hostname);
エラー it looks like edge micro has not been configured, please see the admin guide callback 結果: 構成を読み込めません
エラー key is missing assert assert(keys.key, 'key is missing');
エラー must have configDir assert assert(configDir, 'must have configDir')
エラー must have options assert assert(options, 'must have options');
エラー must have source assert assert(source, 'must have source')
エラー must have source to load from assert assert(options.source, 'must have source to load from')
エラー must have targetFile assert assert(fileName, 'must have targetFile')
エラー options cannot be null assert assert(options, 'options cannot be null');
エラー options.keys cannot be null assert assert(options.keys, 'options.keys cannot be null');
エラー port_message assert assert(+config.edgemicro.port < 65536, port_message);
エラー products should be an array assert assert(Array.isArray(products), 'products should be an array');
エラー 'proxies for product ' + product + ' should be an array' assert assert(Array.isArray(product.proxies), 'proxies for product ' + product + ' should be an array');
エラー secret is missing assert assert(keys.secret, 'secret is missing');
エラー target is not set assert assert(target, 'target is not set');
警告 error downloading config, please check bootstrap configuration console.warn
警告 failed to download jwt_public_key console.warn
警告 jwk keys are not enabled console.warn
警告 message, 'download from', url, 'returned' console.warn 次を検索します: (.*)\sdownload from\s(.*)\sreturned
警告 no edge micro products found in response console.warn
警告 no edge micro proxies found in org console.warn
警告 no edge micro proxies found in response console.warn
警告 no products found in org console.warn
警告 no products found in response console.warn
警告 using old cached configuration console.warn

microgateway-plugins モジュール

エラー config does not exist throws yaml ファイルに関連しています
エラー apikey HTTP レスポンス apiky プラグインでのエラー
エラー bauth HTTP レスポンス bauth プラグインでのエラー
エラー extauth HTTP レスポンス extauth プラグインでのエラー
エラー Oauth HTTP レスポンス oauth プラグインでのエラー
警告 Error encountered processing Apigee analytics. Allowing request processing to continue logger.error
警告 ignoring err console.warn apikeys プラグイン、oauth プラグイン、oauthv2 プラグイン
警告 error parsing jwt: console.warn
警告 oath response object lacks setHeader console.warn oauth パラメータ エラーは一部のエラーが報告されないことを示します。
警告 oath response object is not supplied by runtime console.warn oauth パラメータ エラー
警告 oath stats object is not supplied by runtime console.warn oauth パラメータ エラー

apigeetool-node モジュール

エラー Delete Cache failed with status code %d', res.statusCode callback deletecache.js. でスローされます。Apigee Edge からのステータス コードです。スタック トレースエラーと次のメッセージをコールバックに渡します。done(new Error(errMsg));
エラー Delete Product failed with status code %d', res.statusCode callback deleteproduct.js. でスローされます。Apigee Edge からのステータス コードです。スタック トレースエラーと次のメッセージをコールバックに渡します。done(new Error(errMsg));
エラー org, api and revision must all be specified! callback fetchproxy.js でスローされます。構成エラーです。
エラー Received error %d when fetching proxy: %j callback fetchproxy.js でスローされます。200 以外のステータス コードです。
エラー Create App failed with status code %d callback createapp.js でスローされます。すべてのエラーをスタック トレースエラーとしてコールバックに渡します。コンソールの表示やログエントリの作成は行われません。
エラー command + ' failed with status code %d callback command-utils.js でスローされます。コマンドが解析されてこのモジュールに渡されると、200 または 201 以外のコードでエラー メッセージが生成されます。メッセージのフォーマットは行いますが、印刷はしません。スタック トレースエラーとメッセージをコールバックに返します。
エラー Received error %d when fetching shared flow: %s callback fetchsharedflow.js でスローされます。200 以外の HTTP ステータスの場合。成功してもファイルの書き込みで失敗した場合は、コンソールへの書き込みが行われます。
Failed to write file
Error text: [stack_trace_error]
エラー Create KeySecret failed with status code %d', res.statusCode callback createappkey.js でスローされます。Apigee Edge からの 200 または 201 以外の HTTP ステータス コードの場合。
エラー Create Cache failed with status code %d', res.statusCode callback createcache.js でスローされます。Apigee Edge からの 200 または 201 以外の HTTP ステータス コードの場合。
エラー Create Product failed with status code %d', res.statusCode callback createproduct.js でスローされます。Apigee Edge からの 201 以外の HTTP ステータス コードの場合。HTTP ステータスが 201 でレスポンスにエラー JSON が含まれている場合、エラー JSON はコールバックに転送されます。
エラー Delete App failed with status code %d', res.statusCode callback deleteapp.js でスローされます。Apigee Edge からの 200 以外の HTTP ステータス コードの場合。HTTP ステータスが 200 でレスポンスにエラー JSON が含まれている場合、エラー JSON はコールバックに転送されます。
エラー Create Developer failed with status code %d', res.statusCode callback createdeveloper.js でスローされます。Apigee Edge からの 201 以外の HTTP ステータス コードの場合。HTTP ステータスが 201 でレスポンスにエラー JSON が含まれている場合、エラー JSON はコールバックに転送されます。
エラー Delete Developer failed with status code %d', res.statusCode callback deletedeveloper.js でスローされます。Apigee Edge からの 200 以外の HTTP ステータス コードの場合。HTTP ステータスが 200 でレスポンスにエラー JSON が含まれている場合、エラー JSON はコールバックに転送されます。

プラグイン エラー

accesscontrol plug-in

This section describes the error codes and messages that are returned by the accesscontrol plug-in with descriptions of possible causes.

Error Message HTTP status Possible Causes
Not printed Forbidden 403 Access control rule

accumulate-request plug-in

This section describes the error codes and messages that are returned by the accumulate-request plug-in with descriptions of possible causes.

No errors generated.

accumulate-resopnse plug-in

This section describes the error codes and messages that are returned by the accumulate-response plug-in with descriptions of possible causes.

No errors generated.

analytics plug-in

This section describes the error codes and messages that are returned by the analytics plug-in with descriptions of possible causes.

Errors encountered processing Apigee analytics are written to the Edge Microgateway log. Edge Microgateway processing continues.

apikeys plug-in

This section describes the error codes and messages that are returned by the apikeys plug-in with descriptions of possible causes.

Error Message HTTP status Possible Causes
invalid_request Invalid Request 400 allowNoAuthorization == false

No Authorization header in the HTTP request

allowOAuthOnly == true

invalid_request API Key Verification URL not configured 400 Verification API service not in header.
access_denied Copy service message 403 In response to the auth service timeout
missing_authorization Missing API Key header 401 allowAPIKeyOnly == true

Unless allowInvalidAuthorization

invalid_authorization Invalid Authorization header 401 allowOAuthOnly == true

Authorization-header not in HTTP

gateway_timeout Copy service message 504 In response to the auth timeout
default 500 All other not categorized

bauth plug-in

This section describes the error codes and messages that are returned by the bauth plug-in with descriptions of possible causes.

Error Message HTTP status Possible Causes
missing_authorization Missing API Key header 401 allowAPIKeyOnly == true

Unless allowInvalidAuthorization

invalid_authorization Invalid Authorization header 401 allowOAuthOnly == true

Authorization-header not in HTTP

gateway_timeout Copy service message 504 In response to the auth timeout
default 500 All other not categorized

cloud-foundry-route-service plug-in

This section describes the error codes and messages that are returned by the cloud-foundry-route-service plug-in with descriptions of possible causes.

No errors generated.

cors plug-in

This section describes the error codes and messages that are returned by the cors plug-in with descriptions of possible causes.

No errors generated.

eurekaclient plug-in

This section describes the error codes and messages that are returned by the eurekaclient plug-in with descriptions of possible causes.

The eurekaclient plug-in throws a few console errors only, including a stack trace error on failed start and a warning about the target endpoint from Eureka not found.

extauth plug-in

This section describes the error codes and messages that are returned by the extauth plug-in with descriptions of possible causes.

Error Message HTTP status Possible Causes
invalid_request Invalid Request 400 allowNoAuthorization == false

No Authorization header in the HTTP request

allowOAuthOnly == true

invalid_request API Key Verification URL not configured 400 Verification API service not in header.
access_denied Copy service message 403 In response to the auth service timeout
missing_authorization Missing API Key header 401 allowAPIKeyOnly == true

Unless allowInvalidAuthorization

invalid_authorization Invalid Authorization header 401 allowOAuthOnly == true

Authorization-header not in HTTP

gateway_timeout Copy service message 504 In response to the auth timeout
default 500 All other not categorized

header-uppercase plug-in

This section describes the error codes and messages that are returned by the header-uppercase plug-in with descriptions of possible causes.

No errors generated.

healthcheck plug-in

This section describes the error codes and messages that are returned by the healthcheck plug-in with descriptions of possible causes.

Error Message HTTP status Possible Causes
503 Too busy. No messages in HTTP or console
default Application is not running on specified application port 500 All other not categorized

invalidHeader plug-in

This section describes the error codes and messages that are returned by the invalidHeader plug-in with descriptions of possible causes.

No errors generated.

json2xml plug-in

This section describes the error codes and messages that are returned by the json2xml plug-in with descriptions of possible causes.

Parsing errors are sent to a callback.

Error Message HTTP status Possible Causes
default 500 All other not categorized

monitor plug-in

This section describes the error codes and messages that are returned by the monitor plug-in with descriptions of possible causes.

No errors generated.

oauth plug-in (v1)

This section describes the error codes and messages that are returned by the oauth plug-in (v1) with descriptions of possible causes.

Error Message HTTP status Possible Causes
invalid_request Invalid Authorization Header 400
  • allowNoAuthorization attribute == false
  • allowOAuthOnly == true
  • No Authorization header in the HTTP request
invalid_request API Key Verification URL not configured 400 Verification API service not in header.
Access_denied Copy service message 403 In response to the auth service timeout
invalid_token Missing API Key header 401 allowAPIKeyOnly == true

Unless allowInvalidAuthorization is set

invalid_token token could not be parsed 401 allowAPIKeyOnly == true

Bad token delivered

missing_authorization Missing Authorization header 401 allowNoAuthorization == false

Authorization-header in HTTP

allowOAuthOnly == true

invalid_authorization Invalid Authorization header 401 allowOAuthOnly == true

Authorization-header not in HTTP

gateway_timeout Copy service message 504 In response to the auth timeout
default 500 All other uncategorized responses

oauthv2 plug-in

This section describes the error codes and messages that are returned by the oauthv2 plug-in with descriptions of possible causes.

Error Message HTTP status Possible Causes
invalid_request Invalid Authorization Header 400
  • allowNoAuthorization attribute == false
  • allowOAuthOnly == true
  • No Authorization header in the HTTP request
invalid_request API Key Verification URL not configured 400 Verification API service not in header
access_denied Copy service message 403 In response to the auth service timeout
invalid_token Missing API Key header 401 allowAPIKeyOnly == true

Unless allowInvalidAuthorization is set

invalid_token token could not be parsed 401 allowAPIKeyOnly == true

Bad token delivered

missing_authorization Missing Authorization header 401 allowNoAuthorization == false

Authorization-header in HTTP

allowOAuthOnly == true

invalid_authorization Invalid Authorization header 401 allowOAuthOnly == true

Authorization-header not in HTTP

gateway_timeout Copy service message 504 In response to the auth timeout
default 500 All other uncategorized responses

quota plug-in

This section describes the error codes and messages that are returned by the quota plug-in with descriptions of possible causes.

Defers to volos quota/apigee.

Error Message HTTP status Possible Causes
invalid_authorization Invalid Authorization header 401 allowOAuthOnly == true

Authorization-header not in HTTP

gateway_timeout Not authorized to call the remote proxy. Check the "key" parameter. 404 In response to the auth timeout
default 500 All other not categorized
throw uri parameter must be specified apigeequota.js
throw key parameter must be specified apigeequota.js
callback Apigee Remote Proxy not found at: ' + self.uri + '. Check your configuration apigeequota.js
callback HTTP error getting proxy version: %d. Check the "uri" parameter. apigeequota.js
callback Quotas with a fixed starting time are not supported apigeequota.js
callback Error updating remote quota: %d %s', resp.statusCode, body apigeequota.js

If there is an error on an entry in the product list, the product list will stop being processed.

quota-memory plug-in

This section describes the error codes and messages that are returned by the quota-memory plug-in with descriptions of possible causes.

Defers to volos quota/apigee.

Error Message HTTP status Possible Causes
invalid_authorization Invalid Authorization header 401 allowOAuthOnly == true

Authorization-header not in HTTP

gateway_timeout Not authorized to call the remote proxy. Check the "key" parameter. 404 In response to the auth timeout
default 500 All other not categorized
throw start time not allowed for month time units quota.js. volos error on time format.
throw Invalid start time %s quota.js. volos error on time format.
throw Invalid timeUnit %s quota.js. volos error on time format.

If there is an error on an entry in the product list, the product list will stop being processed.

spikearrest plug-in

This section describes the error codes and messages that are returned by the spikearrest plug-in with descriptions of possible causes.

Defers to volos spikearrest/memory.

Error Message HTTP status Possible Causes
SpikeArrest engaged 503 Traffic spike. This is expected behavior.
throw Invalid timeUnit %s spikearrest.js
callback key must be a string spikearrest.js
throw %s must be a number', name spikearrest.js

transform-uppercase plug-in

This section describes the error codes and messages that are returned by the transform-uppercase plug-in with descriptions of possible causes.

No errors generated.