このトピックでは、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.
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 |
|
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 |
|
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.