Edge Microgateway 錯誤參考資料

您目前查看的是 Apigee Edge 說明文件。
前往 Apigee X 說明文件
info

本主題說明您可能會在 Edge Microgateway 中遇到的錯誤和警告。

一般應用程式錯誤

  • HTTP 500,錯誤處理常式失敗 - 大部分錯誤都會有這個數字,目標傳回的部分錯誤也是如此。特別是 errors-middleware.js 會在整個 microgateway-core 模組中使用。使用時,會透過 Edge Microgateway logger object: logger.error(err, 'failed in error handler'); 將 statusCodes 寫入記錄。 如果目標傳回的代碼介於 100 到 300 之間,errors-middleware.js 會將 statusCode 重新編寫為 500,然後傳回給用戶端。

  • HTTP 404 - 您可能會看到這個狀態,並產生堆疊追蹤記錄和以下訊息: no match found for [API_path_name]

模組錯誤和警告

您可以根據這項資訊設定快訊,監控及管理 Edge Microgateway 部署作業。

「處理常式」下的錯誤參照中會顯示下列字詞,指出 Edge Microgateway 如何處理各種錯誤。

  • assert:通常,如果判斷結果為失敗,Edge Microgateway 就會停止運作。不過,情況不一定如此,因為「asserts」會擲回可擷取的例外狀況。
  • 擲回:系統可能停止運作。
  • callback:錯誤會傳遞至回呼,系統可能會繼續運作。
類型 訊息 Handler 附註

microgateway 模組

error 必須提供機構 assert assert(options.org,"org is required");
error env is required assert assert(options.env,"env is required")
error 必須提供使用者名稱 assert assert(options.username || options.token,"username is required");
error 必須提供密碼 assert assert(options.password || options.token,"password is required")
error 必須提供機構 assert assert(options.org,"org is required");
error env is required assert assert(options.env,"env is required")
error 必須提供使用者名稱 assert assert(options.username || options.token,"username is required");
error 必須提供密碼 assert assert(options.password || options.token,"password is required")
error 必須提供機構 assert assert(options.org,"org is required");
error env is required assert assert(options.env,"env is required")
error 必須提供機構 assert assert(options.org,"org is required");
error env is required assert assert(options.env,"env is required")
error 必須提供使用者名稱 assert assert(options.username, 'username is required');
error 必須提供密碼 assert assert(options.password, 'password is required');
error 必須提供機構 assert assert(options.org, 'org is required');
error env is required assert assert(options.env, 'env is required');
error 必須指派目標檔案 assert assert(targetFile, 'must have an assigned target file')
error 必須有金鑰 assert assert(key, 'must have a key');
error 必須有密鑰 assert assert(secret, 'must have a secret');
error 必須設定 dir assert assert(dir, 'dir must be configured')
error 必須提供回呼 assert assert(callback, 'callback must be present')
error 必須提供使用者名稱 assert assert(options.username, 'username is required');
error 必須提供密碼 assert assert(options.password, 'password is required');
error 必須提供機構 assert assert(options.org, 'org is required');
error env is required assert assert(options.env, 'env is required');
error 必須提供 runtimeUrl assert assert(options.runtimeUrl, 'runtimeUrl is required');
error mgmtUrl 為必填欄位 assert assert(options.mgmtUrl, 'mgmtUrl is required');
error 必須提供檔案 assert assert(options.file,"file is required")
error 必須有目標 assert assert(options.target, 'must have target');
error plugins not configured assert assert(config.edgemicro.plugins, 'plugins not configured');
error plugin dir does not exist: + pluginDir assert assert(fs.existsSync(pluginDir), 'plugin dir does not exist: ' + pluginDir);
error plugin dir is not a directory: + pluginDir assert assert(stat.isDirectory(), 'plugin dir is not a directory: ' + pluginDir);
error error reading plugin dir: + pluginDir assert assert(dirs, 'error reading plugin dir: ' + pluginDir);
error 必須有權杖 assert assert(token, 'must have a token');
error configpath 不得留空 assert assert(config, 'configpath can't be empty');
error 必須有 EDGEMICRO_KEY assert assert(key, 'must have EDGEMICRO_KEY');
error 必須有 EDGEMICRO_SECRET assert assert(secret, 'must have EDGEMICRO_SECRET');
error 設定不存在 throws 與 YAML 檔案相關
error edgemicro 似乎已在執行。 console.error attempting to overwrite a .sock file
error 無法檢查設定變更。系統將於 console.error 邊緣通訊發生問題
error 如果伺服器未執行,可能是因為先前啟動時關機不當。 console.error
error 缺少 %s,請執行 console.error Missing (.*), Please run
error 無法重新載入 edgemicro console.error 指令層級
error 無法停止 edgemicro console.error 指令層級
error 'Try removing ' + ipcPath + ' and start again' console.error
error 'cache configuration ' + cache + ' does not exist. exiting.' console.error
error 無法寫入設定檔: console.error 設定會失敗
error 設定檔未下載: console.error 設定會失敗
error edge micro 無法啟動 console.error 不應執行
error edgemicro 未執行。 console.error 檢查程序,不應列出
error env is required console.error 執行時所需的環境變數
error error - editing apiproxy Callout.xml console.error 檔案存取權
error error - editing apiproxy default.xml console.error 檔案存取權
error error checking for cert. 安裝新憑證。 console.error 無法使用公開金鑰
error 無法擷取機構的區域 console.error key-gen.js、cert-lib.js 和 private.js
error 上傳憑證時發生錯誤 console.error 無法將公開金鑰與 Edge 同步
error 失敗 console.error key-gen.js
error failed to init configpath file %s console.error 無法載入設定
error 區域 API 回應無效 console.error key-gen.js、cert-lib.js 和 private.js
error 必須提供索引鍵 console.error 參數
error 必須提供機構 console.error 參數
error port is not available。 console.error 參數
error 必須提供密鑰 console.error 參數
error 不支援的網址通訊協定: console.error 設定資訊指出 Edge Microgateway 範圍外的網際網路通訊協定
error verifying analytics negative case: FAIL console.error 可能導致當機/失敗
error verifying analytics with payload: FAIL console.error 可能導致當機/失敗
error verifying bootstrap url availability:FAIL console.error 可能導致當機/失敗
error verifying jwt_public_key availability: FAIL console.error 可能導致當機/失敗
error verifying products availability: FAIL console.error 可能導致當機/失敗
error verifying quota with configured products: FAIL console.error 可能導致當機/失敗
warn failed to retrieve config from gateway. continuing, will try cached copy.. console.error
warn 貴機構中已有 KVM console.log
warn 已部署 console.log
warn 找不到依序執行的外掛程式: console.warn
warn pluginDir %s 不存在 console.log pluginDir (.*) does not exist

microgateway-core 模組

error config not initialized assert assert(config, 'config not initialized')
error 必須有設定檔 assert assert(config, ' must have a config')
error 必須有設定 assert assert(config, 'must have config')
error 設定檔必須有 uid assert assert(config.uid, 'config must have uid');
error 必須在設定中包含 config.edgemicro.logging assert assert(logConfig, 'must have config.edgemicro.logging in config');
error 必須有要求方法 assert assert(httpLibrary.request, 'must have request method');
error 必須將外掛程式載入記憶體 assert assert(options.plugin, "must have plugin loaded in memory");
error init 必須是函式 assert assert(_.isFunction(options.plugin.init), 'init must be a function');
error 必須有外掛程式名稱 assert assert(options.pluginName, "must have plugin name");
error ignoring invalid plugin handlers + name<0x0x0A> assert assert(_.isObject(middleware), 'ignoring invalid plugin handlers ' + name);
error 選項必須包含設定 assert assert(config, 'options must contain config')
error 外掛程式必須有名稱 assert assert(name,"plugin must have a name")
error 名稱必須是字串 assert assert(_.isString(name),"name must be a string");
error 外掛程式必須是函式 assert assert(_.isFunction(plugin),"plugin must be a function(config,logger,stats){return {onresponse:function(req,res,data,next){}}}");
error 必須有金鑰 assert assert(key, 'must have a key');
error 必須有密鑰 assert assert(secret, 'must have a secret');
error 必須有來源設定目錄 assert assert(source, 'must have a source config directory');
error error loading plugin console.error 外掛程式未載入
error failed in error handler 回呼 HTTP server.on() 函式
error 標頭長度超過允許的大小 HTTP 錯誤 外掛程式無法執行
error response finished before work can be done logger.error 目標外掛程式未執行
error 處理常式擲回例外狀況 回呼 從外掛程式 (catch) 擷取錯誤
error error starting edge micro 回呼 Edge Microgateway 無法啟動
error 外掛程式必須是函式 throws
warn console.error 警告 寫入記錄
warn targetRequest 錯誤 叫用目標錯誤處理常式 與目標連線時發生 HTTP 用戶端錯誤
warn targetResponse 錯誤 叫用目標錯誤處理常式 與目標連線時發生 HTTP 目標伺服器錯誤 (如用戶端所示)

microgateway-config 模組

error allow_message assert assert(+config.quota.allow > 0, allow_message);
error 設定不存在 throws 設定 YAML 檔案
error config is empty throws 設定 YAML 檔案
error config is not a file throws 設定 YAML 檔案
error config is not defined assert assert(config, 'config is not defined');
error config.analytics.batchSize 無效 assert assert(+config.analytics.batchSize > 0, 'config.analytics.batchSize is invalid');
error config.analytics.batchSize 不是數字 assert assert(typeof config.analytics.batchSize === 'number', 'config.analytics.batchSize is not a number');
error config.analytics.bufferSize 無效 assert assert(+config.analytics.bufferSize > 0, 'config.analytics.bufferSize is invalid');
error config.analytics.bufferSize 不是數字 assert assert(typeof config.analytics.bufferSize === 'number', 'config.analytics.bufferSize is not a number');
error config.analytics.flushInterval 無效 assert assert(+config.analytics.flushInterval > 0, 'config.analytics.flushInterval is invalid');
error config.analytics.flushInterval 不是數字 assert assert(typeof config.analytics.flushInterval === 'number', 'config.analytics.flushInterval is not a number');
error config.analytics.proxy 不是「dummy」 assert assert(config.analytics.proxy === 'dummy', 'config.analytics.proxy is not "dummy"');
error config.analytics.proxy 未定義 assert assert(config.analytics.proxy, 'config.analytics.proxy is not defined');
error config.analytics.proxy_revision 不是數字 assert assert(typeof config.analytics.proxy_revision === 'number', 'config.analytics.proxy_revision is not a number');
error config.analytics.proxy_revision 未定義 assert assert(config.analytics.proxy_revision, 'config.analytics.proxy_revision is not defined');
error config.analytics.source 不是「microgateway」 assert assert(config.analytics.source === 'microgateway', 'config.analytics.source is not "microgateway"');
error config.analytics.source 未定義 assert assert(config.analytics.source, 'config.analytics.source is not defined');
error config.analytics.uri 不是字串 assert assert(typeof config.analytics.uri === 'string', 'config.analytics.uri is not a string');
error config.analytics.uri 未定義 assert assert(config.analytics.uri, 'config.analytics.uri is not defined');
error 未定義 config.apikeys.public_key assert assert(typeof config.apikeys.public_key === 'string', 'config.apikeys.public_key is not defined');
error config.edge_config 未定義 assert assert(config.edge_config, 'config.edge_config is not defined');
error config.edge_config.bootstrap 未定義 assert assert(config.edge_config.bootstrap, 'config.edge_config.bootstrap is not defined');
error config.edge_config.jwt_public_key 未定義 assert assert(config.edge_config.jwt_public_key, 'config.edge_config.jwt_public_key is not defined');
error 如果定義了 config.edge_config.proxy_tunnel,就必須定義 config.edge_config.proxy assert assert(typeof config.edge_config.proxy !== 'undefined', 'config.edge_config.proxy must be defined if config.edge_config.proxy_tunnel is defined');
error config.edge_config.proxy_tunnel 不是布林值 assert assert(typeof config.edge_config.proxy_tunnel === 'boolean', 'config.edge_config.proxy_tunnel is not a boolean');
error config.edge_config.refresh_interval 不是數字 assert assert(typeof config.edge_config.refresh_interval === 'number', 'config.edge_config.refresh_interval is not a number');
error config.edge_config.refresh_interval 太小 (至少 1 小時) assert assert(config.edge_config.refresh_interval >= 3600000, 'config.edge_config.refresh_interval is too small (min 1h)');
error config.edge_config.retry_interval 不是數字 assert assert(typeof config.edge_config.retry_interval === 'number', 'config.edge_config.retry_interval is not a number');
error config.edge_config.retry_interval 太小 (至少 5 秒) assert assert(config.edge_config.retry_interval >= 5000, 'config.edge_config.retry_interval is too small (min 5s)');
error config.edgemicro 未定義 assert assert(config.edgemicro, 'config.edgemicro is not defined');
error config.edgemicro.logging 未定義 assert assert(config.edgemicro.logging, 'config.edgemicro.logging is not defined');
error config.edgemicro.logging.dir 未定義 assert if (!config.edgemicro.logging.to_console) assert(config.edgemicro.logging.dir, 'config.edgemicro.logging.dir is not defined');
error config.edgemicro.logging.level is not defined assert assert(config.edgemicro.logging.level, 'config.edgemicro.logging.level is not defined');
error config.edgemicro.max_connections 不是數字 assert assert(typeof config.edgemicro.max_connections === 'number', 'config.edgemicro.max_connections is not a number');
error config.edgemicro.max_connections 未定義 assert assert(config.edgemicro.max_connections, 'config.edgemicro.max_connections is not defined');
error config.edgemicro.plugins.sequence 不是陣列 assert assert(Array.isArray(config.edgemicro.plugins.sequence), 'config.edgemicro.plugins.sequence is not an array');
error config.edgemicro.port is not defined assert assert(config.edgemicro.port, 'config.edgemicro.port is not defined');
error config.oauth.allowInvalidAuthorization 未定義 assert assert(typeof config.oauth.allowInvalidAuthorization === 'boolean', 'config.oauth.allowInvalidAuthorization is not defined');
error config.oauth.allowNoAuthorization is not defined assert assert(typeof config.oauth.allowNoAuthorization === 'boolean', 'config.oauth.allowNoAuthorization is not defined');
error config.oauth.public_key 未定義 assert assert(typeof config.oauth.public_key === 'string', 'config.oauth.public_key is not defined');
error config.oauthv2.public_key 未定義 assert assert(typeof config.oauthv2.public_key === 'string', 'config.oauthv2.public_key is not defined');
error config.proxies is not defined assert assert(config.proxies, 'config.proxies is not defined');
error config.proxy[ + index + ].base_path 未定義 assert assert(proxy.base_path, 'config.proxy[' + index + '].base_path is not defined');
error config.proxy[ + index + ].max_connections 不是數字 assert assert(typeof proxy.max_connections === 'number', 'config.proxy[' + index + '].max_connections is not a number');
error config.proxy[ + index + ].max_connections 未定義 assert assert(proxy.max_connections, 'config.proxy[' + index + '].max_connections is not defined');
error config.proxy[ + index + ].name is not defined assert assert(proxy.name, 'config.proxy[' + index + '].name is not defined');
error config.proxy[ + index + ].proxy_name 未定義 assert assert(proxy.target_name, 'config.proxy[' + index + '].proxy_name is not defined');
error config.proxy[ + index + ].revision is not defined assert assert(proxy.revision, 'config.proxy[' + index + '].revision is not defined');
error config.proxy[ + index + ].url is not defined assert assert(proxy.url, 'config.proxy[' + index + '].url is not defined');
error config.quota.allow 不是數字 assert assert(typeof config.quota.allow === 'number', 'config.quota.allow is not a number');
error config.quota.allow 未定義 assert assert(config.quota.allow, 'config.quota.allow is not defined');
error config.quota.interval 不是數字 assert assert(typeof config.quota.interval === 'number', 'config.quota.interval is not a number');
error config.quota.interval 未定義 assert assert(config.quota.interval, 'config.quota.interval is not defined');
error config.spikearrest 未定義 assert assert(config.spikearrest, 'config.spikearrest is not defined');
error config.spikearrest.allow 無效 assert assert(+config.spikearrest.allow > 0, 'config.spikearrest.allow is invalid');
error config.spikearrest.allow 不是數字 assert assert(typeof config.spikearrest.allow === 'number', 'config.spikearrest.allow is not a number');
error config.spikearrest.allow 未定義 assert assert(config.spikearrest.allow, 'config.spikearrest.allow is not defined');
error config.spikearrest.bufferSize 無效 assert assert(+config.spikearrest.bufferSize > 0, 'config.spikearrest.bufferSize is invalid');
error config.spikearrest.bufferSize 不是數字 assert assert(typeof config.spikearrest.bufferSize === 'number', 'config.spikearrest.bufferSize is not a number');
error config.spikearrest.timeUnit 未定義 assert assert(config.spikearrest.timeUnit, 'config.spikearrest.timeUnit is not defined');
error 重大錯誤:剖析下載的產品清單時發生錯誤 回呼
error 重大錯誤:剖析下載的 Proxy 清單時發生錯誤 回呼
error 偵測到產品設定錯誤 console.error Followed by console.warn('using old cached configuration');
error error reading config from throws 設定 YAML 檔案
error error saving config to 回呼 設定 YAML 檔案
error fatal: cached config not available, unable to continue 回呼
error interval_message assert assert(+config.quota.interval > 0, interval_message);
error 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);
error invalid proxy host for config.edge_config.proxy assert assert(proxy_url.hostname, 'invalid proxy host for config.edge_config.proxy: ' + proxy_url.hostname);
error Edge Micro 似乎尚未設定,請參閱管理員指南 回呼 結果:無法載入設定
error 缺少金鑰 assert assert(keys.key, 'key is missing');
error 必須有 configDir assert assert(configDir, 'must have configDir')
error 必須提供選項 assert assert(options, 'must have options');
error 必須有來源 assert assert(source, 'must have source')
error 必須有可載入的來源 assert assert(options.source, 'must have source to load from')
error 必須有 targetFile assert assert(fileName, 'must have targetFile')
error options cannot be null assert assert(options, 'options cannot be null');
error options.keys 不得為空值 assert assert(options.keys, 'options.keys cannot be null');
error port_message assert assert(+config.edgemicro.port < 65536, port_message);
error 產品應為陣列 assert assert(Array.isArray(products), 'products should be an array');
error 'proxies for product ' + product + ' should be an array' assert assert(Array.isArray(product.proxies), 'proxies for product ' + product + ' should be an array');
error 缺少密鑰 assert assert(keys.secret, 'secret is missing');
error 未設定目標 assert assert(target, 'target is not set');
warn error downloading config, please check bootstrap configuration console.warn
warn failed to download jwt_public_key console.warn
warn jwk 鍵未啟用 console.warn
warn message, 'download from', url, 'returned' console.warn Search for: (.*)\sdownload from\s(.*)\sreturned
warn no edge micro products found in response console.warn
warn no edge micro proxies found in org console.warn
warn no edge micro proxies found in response console.warn
warn 機構中找不到任何產品 console.warn
warn no products found in response console.warn
warn using old cached configuration console.warn

microgateway-plugins 模組

error 設定不存在 throws 與 YAML 檔案相關
error apikey HTTP 回應 apiky 外掛程式發生錯誤
error bauth HTTP 回應 bauth 外掛程式發生失敗
error extauth HTTP 回應 extauth 外掛程式發生故障
error OAuth HTTP 回應 OAuth 外掛程式發生錯誤
warn 處理 Apigee 數據分析時發生錯誤。允許繼續處理要求 logger.error
warn ignoring err console.warn apikeys、oauth 和 oauthv2 外掛程式
warn error parsing jwt: console.warn
warn oath 回應物件缺少 setHeader console.warn oauth 參數錯誤表示系統不會回報部分錯誤。
warn 執行階段未提供 oath 回應物件 console.warn oauth 參數錯誤
warn 執行階段未提供 oath 統計資料物件 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));
錯誤 必須指定機構、API 和修訂版本! callback 在 fetchproxy.js 中擲回。設定發生錯誤。
錯誤 擷取 Proxy 時收到錯誤 %d: %j callback 在 fetchproxy.js 中擲回。狀態碼不是 200。
錯誤 建立應用程式失敗,狀態碼為 %d callback Thrown in createapp.js. 將所有錯誤傳回回呼,做為堆疊追蹤錯誤。 不會產生任何主控台列印內容或記錄項目。
錯誤 指令 + ' 失敗,狀態碼為 %d callback 在 command-utils.js 中擲回。無論是何種指令,只要剖析並傳遞至這個模組,如果程式碼不是 200 或 201,就會產生錯誤訊息。格式化這則訊息,但不會列印。將堆疊追蹤錯誤連同訊息傳回回呼。
錯誤 擷取共用流程時發生錯誤 %d:%s callback Thrown in 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 的 HTTP 狀態碼不是 200 或 201。
錯誤 Create Cache failed with status code %d', res.statusCode callback 在 createcache.js 中擲回。適用於 Apigee Edge 傳回的 HTTP 狀態碼 (非 200 或 201)。
錯誤 Create Product failed with status code %d', res.statusCode callback 在 createproduct.js 中擲回。Apigee Edge 傳回的 HTTP 狀態碼不是 201。 如果 HTTP 狀態為 201,但回應包含錯誤 JSON,系統會將錯誤 JSON 轉送至回呼。
錯誤 Delete App failed with status code %d', res.statusCode callback 在 deleteapp.js 中擲回。適用於 Apigee Edge 傳回的 HTTP 狀態碼 (非 200)。 如果 HTTP 狀態為 200,但回應包含錯誤 JSON,系統會將錯誤 JSON 轉送至回呼。
錯誤 Create Developer failed with status code %d', res.statusCode callback 在 createdeveloper.js 中擲回。Apigee Edge 傳回的 HTTP 狀態碼不是 201。 如果 HTTP 狀態為 201,但回應包含錯誤 JSON,系統會將錯誤 JSON 轉送至回呼。
錯誤 Delete Developer failed with status code %d', res.statusCode callback 在 deletedeveloper.js 中擲回。適用於 Apigee Edge 傳回的 HTTP 狀態碼 (非 200)。 如果 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.