Edge Microgateway 錯誤參考資料

您正在查看 Apigee Edge 說明文件。
前往 Apigee X 說明文件
info

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

一般應用程式錯誤

  • HTTP 500,在錯誤處理常式中失敗 - 大部分錯誤都會顯示這個編號,目標傳回的部分錯誤也會顯示這個編號。特別是,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 部署作業。

下列術語會顯示在「Handler」下方的錯誤參考資料中,指出 Edge Microgateway 如何處理各種錯誤。

  • 斷言:通常,如果斷言評估失敗,Edge Microgateway 就會停止。不過,這不一定是事實,因為「斷言」會擲回可能遭到擷取的例外狀況。
  • throws:系統可能會停止。
  • 回呼:錯誤會傳遞至回呼,系統可能會繼續運作。
類型 訊息 Handler 附註

microgateway 模組

錯誤 org 為必填 assert assert(options.org,"org is required");
錯誤 必須提供 env 斷言 assert(options.env,"env is required")
錯誤 必須提供使用者名稱 斷言 assert(options.username || options.token,"username is required");
錯誤 必須提供密碼 斷言 assert(options.password || options.token,"password is required")
錯誤 org 為必填 assert assert(options.org,"org is required");
錯誤 必須提供 env 斷言 assert(options.env,"env is required")
錯誤 必須提供使用者名稱 斷言 assert(options.username || options.token,"username is required");
錯誤 必須提供密碼 斷言 assert(options.password || options.token,"password is required")
錯誤 org 為必填 assert assert(options.org,"org is required");
錯誤 必須提供 env 斷言 assert(options.env,"env is required")
錯誤 org 為必填 assert assert(options.org,"org is required");
錯誤 必須提供 env 斷言 assert(options.env,"env is required")
錯誤 必須提供使用者名稱 斷言 assert(options.username, 'username is required');
錯誤 必須提供密碼 斷言 assert(options.password, 'password is required');
錯誤 org 為必填 斷言 assert(options.org, 'org is required');
錯誤 必須提供 env 斷言 assert(options.env, 'env is required');
錯誤 必須有指派的目標檔案 斷言 assert(targetFile, 'must have an assigned target file')
錯誤 必須有索引鍵 斷言 assert(key, 'must have a key');
錯誤 必須有密鑰 assert assert(secret, 'must have a secret');
錯誤 必須設定 dir 斷言 assert(dir, 'dir must be configured')
錯誤 回呼必須存在 assert assert(callback, 'callback must be present')
錯誤 必須提供使用者名稱 斷言 assert(options.username, 'username is required');
錯誤 必須提供密碼 斷言 assert(options.password, 'password is required');
錯誤 org 為必填 斷言 assert(options.org, 'org is required');
錯誤 必須提供 env 斷言 assert(options.env, 'env is required');
錯誤 必須提供 runtimeUrl assert assert(options.runtimeUrl, 'runtimeUrl is required');
錯誤 必須提供 mgmtUrl 斷言 assert(options.mgmtUrl, 'mgmtUrl is required');
錯誤 檔案 斷言 assert(options.file,"file is required")
錯誤 必須有目標 斷言 assert(options.target, 'must have target');
錯誤 未設定外掛程式 斷言 assert(config.edgemicro.plugins, 'plugins not configured');
錯誤 外掛程式目錄不存在:+ pluginDir 斷言 assert(fs.existsSync(pluginDir), 'plugin dir does not exist: ' + pluginDir);
錯誤 外掛程式目錄不是目錄:+ pluginDir 斷言 assert(stat.isDirectory(), 'plugin dir is not a directory: ' + pluginDir);
錯誤 讀取外掛程式目錄時發生錯誤:+ pluginDir 斷言 assert(dirs, 'error reading plugin dir: ' + pluginDir);
錯誤 必須有符記 斷言 assert(token, 'must have a token');
錯誤 configpath 不得留空 斷言 assert(config, 'configpath can't be empty');
錯誤 必須有 EDGEMICRO_KEY assert assert(key, 'must have EDGEMICRO_KEY');
錯誤 必須有 EDGEMICRO_SECRET 斷言 assert(secret, 'must have EDGEMICRO_SECRET');
錯誤 設定不存在 throws 與 yaml 檔案相關
錯誤 edgemicro 似乎已在執行。 console.error 嘗試覆寫 .sock 檔案
錯誤 無法檢查設定中的變更。之後會再次嘗試 console.error 邊緣通訊發生問題
錯誤 如果伺服器未執行,可能是因為先前啟動時未正確關閉。 console.error
錯誤 缺少 %s,請執行 console.error 缺少 (.*),請執行
錯誤 重新載入 edgemicro 失敗 console.error 指令層級
錯誤 無法停止 edgemicro console.error 指令層級
錯誤 「Try removing ' + ipcPath + ' and start again'」 console.error
錯誤 「cache configuration ' + cache + ' does not exist. exiting.」 console.error
錯誤 無法寫入設定檔: console.error 設定會失敗
錯誤 未下載設定檔: console.error 設定會失敗
錯誤 無法啟動 Edge Micro console.error 不應執行
錯誤 edgemicro 未執行。 console.error 檢查程序,不應列出
錯誤 必須提供 env console.error 執行所需的環境變數
錯誤 錯誤 - 編輯 apiproxy Callout.xml console.error 檔案存取權
錯誤 錯誤 - 編輯 apiproxy default.xml console.error 檔案存取權
錯誤 檢查憑證的錯誤。正在安裝新的憑證。 console.error 無法使用公開金鑰
錯誤 擷取機構區域時發生錯誤 console.error key-gen.js、cert-lib.js 和 private.js
錯誤 上傳憑證時發生錯誤 console.error 無法將公開金鑰與 Edge 同步
錯誤 失敗 console.error key-gen.js
錯誤 無法初始化設定路徑檔案 %s console.error 無法載入設定
錯誤 來自 region API 的無效回應 console.error key-gen.js、cert-lib.js 和 private.js
錯誤 必須提供索引鍵 console.error 參數
錯誤 org 為必填 console.error 參數
錯誤 無法使用。 console.error 參數
錯誤 必須提供密碼 console.error 參數
錯誤 不支援的網址通訊協定: console.error 設定資訊指出某個網路通訊協定不在 Edge Microgateway 的範圍內
錯誤 驗證 Analytics 負面案例:失敗 console.error 可能發生的當機/失敗
錯誤 使用酬載驗證數據分析:失敗 console.error 可能發生的當機/失敗
錯誤 驗證啟動網址可用性:失敗 console.error 可能發生的當機/失敗
錯誤 驗證 jwt_public_key 可用性:失敗 console.error 可能發生的當機/失敗
錯誤 驗證產品供應情形:失敗 console.error 可能發生的當機/失敗
錯誤 使用已設定的產品驗證配額:失敗 console.error 可能發生的當機/失敗
warn 無法從閘道擷取設定。繼續嘗試快取副本。 console.error
warn 貴機構中已存在 KVM console.log
warn 已部署 console.log
warn 找不到排序外掛程式: console.warn
warn pluginDir %s 不存在 console.log pluginDir (.*) 不存在

microgateway-core 模組

錯誤 未初始化的設定 斷言 assert(config, 'config not initialized')
錯誤 必須具備設定 斷言 assert(config, ' must have a config')
錯誤 必須有設定 斷言 assert(config, 'must have config')
錯誤 設定必須有 uid 斷言 assert(config.uid, 'config must have uid');
錯誤 設定中必須有 config.edgemicro.logging assert assert(logConfig, 'must have config.edgemicro.logging in config');
錯誤 必須有要求方法 斷言 assert(httpLibrary.request, 'must have request method');
錯誤 必須將外掛程式載入記憶體中 斷言 assert(options.plugin, "must have plugin loaded in memory");
錯誤 init 必須是函式 斷言 assert(_.isFunction(options.plugin.init), 'init must be a function');
錯誤 必須有外掛程式名稱 斷言 assert(options.pluginName, "must have plugin name");
錯誤 忽略無效的外掛程式處理程序 + 名稱 斷言 assert(_.isObject(middleware), 'ignoring invalid plugin handlers ' + name);
錯誤 選項必須包含設定 斷言 assert(config, 'options must contain config')
錯誤 外掛程式必須有名稱 斷言 assert(name,"plugin must have a name")
錯誤 name 必須是字串 斷言 assert(_.isString(name),"name must be a string");
錯誤 外掛程式必須是函式 assert assert(_.isFunction(plugin),"plugin must be a function(config,logger,stats){return {onresponse:function(req,res,data,next){}}}");
錯誤 必須有索引鍵 斷言 assert(key, 'must have a key');
錯誤 必須有密鑰 assert assert(secret, 'must have a secret');
錯誤 必須有來源設定目錄 斷言 assert(source, 'must have a source config directory');
錯誤 載入外掛程式時發生錯誤 console.error 未載入外掛程式
錯誤 在錯誤處理常式中失敗 回呼 HTTP server.on() 函式
錯誤 標頭長度超過允許大小 HTTP 錯誤 未執行外掛程式
錯誤 回應在工作完成前就結束 logger.error 目標外掛程式無法執行
錯誤 處理常式擲回例外狀況 回呼 擷取外掛程式中的錯誤 (擷取)
錯誤 啟動 Edge Micro 時發生錯誤 回呼 Edge Microgateway 無法啟動
錯誤 外掛程式必須是函式 throws
warn console.error 警告 記錄寫入
warn targetRequest 錯誤 叫用目標錯誤處理機制 與目標連線時發生 HTTP 用戶端錯誤
warn targetResponse 錯誤 叫用目標錯誤處理機制 在用戶端中,與目標連線的 HTTP 目標伺服器錯誤

microgateway-config 模組

錯誤 allow_message 斷言 assert(+config.quota.allow > 0, allow_message);
錯誤 設定不存在 throws 設定 yaml 檔案
錯誤 設定檔為空白 throws 設定 yaml 檔案
錯誤 設定檔不是檔案 throws 設定 yaml 檔案
錯誤 未定義 config 斷言 assert(config, 'config is not defined');
錯誤 config.analytics.batchSize 無效 斷言 assert(+config.analytics.batchSize > 0, 'config.analytics.batchSize is invalid');
錯誤 config.analytics.batchSize 不是數字 斷言 assert(typeof config.analytics.batchSize === 'number', 'config.analytics.batchSize is not a number');
錯誤 config.analytics.bufferSize 無效 assert assert(+config.analytics.bufferSize > 0, 'config.analytics.bufferSize is invalid');
錯誤 config.analytics.bufferSize 不是數字 斷言 assert(typeof config.analytics.bufferSize === 'number', 'config.analytics.bufferSize is not a number');
錯誤 config.analytics.flushInterval 無效 斷言 assert(+config.analytics.flushInterval > 0, 'config.analytics.flushInterval is invalid');
錯誤 config.analytics.flushInterval 不是數字 斷言 assert(typeof config.analytics.flushInterval === 'number', 'config.analytics.flushInterval is not a number');
錯誤 config.analytics.proxy 不是「dummy」 assert assert(config.analytics.proxy === 'dummy', 'config.analytics.proxy is not "dummy"');
錯誤 未定義 config.analytics.proxy assert assert(config.analytics.proxy, 'config.analytics.proxy is not defined');
錯誤 config.analytics.proxy_revision 不是數字 斷言 assert(typeof config.analytics.proxy_revision === 'number', 'config.analytics.proxy_revision is not a number');
錯誤 未定義 config.analytics.proxy_revision 斷言 assert(config.analytics.proxy_revision, 'config.analytics.proxy_revision is not defined');
錯誤 config.analytics.source 不是「microgateway」 斷言 assert(config.analytics.source === 'microgateway', 'config.analytics.source is not "microgateway"');
錯誤 未定義 config.analytics.source assert assert(config.analytics.source, 'config.analytics.source is not defined');
錯誤 config.analytics.uri 不是字串 斷言 assert(typeof config.analytics.uri === 'string', 'config.analytics.uri is not a string');
錯誤 未定義 config.analytics.uri assert assert(config.analytics.uri, 'config.analytics.uri is not defined');
錯誤 未定義 config.apikeys.public_key 斷言 assert(typeof config.apikeys.public_key === 'string', 'config.apikeys.public_key is not defined');
錯誤 未定義 config.edge_config 斷言 assert(config.edge_config, 'config.edge_config is not defined');
錯誤 未定義 config.edge_config.bootstrap 斷言 assert(config.edge_config.bootstrap, 'config.edge_config.bootstrap is not defined');
錯誤 未定義 config.edge_config.jwt_public_key 斷言 assert(config.edge_config.jwt_public_key, 'config.edge_config.jwt_public_key is not defined');
錯誤 如果已定義 config.edge_config.proxy_tunnel,則必須定義 config.edge_config.proxy 斷言 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 不是布林值 assert assert(typeof config.edge_config.proxy_tunnel === 'boolean', 'config.edge_config.proxy_tunnel is not a boolean');
錯誤 config.edge_config.refresh_interval 不是數字 斷言 assert(typeof config.edge_config.refresh_interval === 'number', 'config.edge_config.refresh_interval is not a number');
錯誤 config.edge_config.refresh_interval 太短 (最小 1 小時) assert assert(config.edge_config.refresh_interval >= 3600000, 'config.edge_config.refresh_interval is too small (min 1h)');
錯誤 config.edge_config.retry_interval 不是數字 斷言 assert(typeof config.edge_config.retry_interval === 'number', 'config.edge_config.retry_interval is not a number');
錯誤 config.edge_config.retry_interval 太短 (最小 5 秒) 斷言 assert(config.edge_config.retry_interval >= 5000, 'config.edge_config.retry_interval is too small (min 5s)');
錯誤 未定義 config.edgemicro 斷言 assert(config.edgemicro, 'config.edgemicro is not defined');
錯誤 未定義 config.edgemicro.logging assert assert(config.edgemicro.logging, 'config.edgemicro.logging is not defined');
錯誤 未定義 config.edgemicro.logging.dir assert if (!config.edgemicro.logging.to_console) assert(config.edgemicro.logging.dir, 'config.edgemicro.logging.dir is not defined');
錯誤 未定義 config.edgemicro.logging.level assert assert(config.edgemicro.logging.level, 'config.edgemicro.logging.level is not defined');
錯誤 config.edgemicro.max_connections 不是數字 斷言 assert(typeof config.edgemicro.max_connections === 'number', 'config.edgemicro.max_connections is not a number');
錯誤 未定義 config.edgemicro.max_connections 斷言 assert(config.edgemicro.max_connections, 'config.edgemicro.max_connections is not defined');
錯誤 config.edgemicro.plugins.sequence 不是陣列 斷言 assert(Array.isArray(config.edgemicro.plugins.sequence), 'config.edgemicro.plugins.sequence is not an array');
錯誤 未定義 config.edgemicro.port 斷言 assert(config.edgemicro.port, 'config.edgemicro.port is not defined');
錯誤 未定義 config.oauth.allowInvalidAuthorization assert assert(typeof config.oauth.allowInvalidAuthorization === 'boolean', 'config.oauth.allowInvalidAuthorization is not defined');
錯誤 未定義 config.oauth.allowNoAuthorization 斷言 assert(typeof config.oauth.allowNoAuthorization === 'boolean', 'config.oauth.allowNoAuthorization is not defined');
錯誤 未定義 config.oauth.public_key 斷言 assert(typeof config.oauth.public_key === 'string', 'config.oauth.public_key is not defined');
錯誤 未定義 config.oauthv2.public_key 斷言 assert(typeof config.oauthv2.public_key === 'string', 'config.oauthv2.public_key is not defined');
錯誤 未定義 config.proxies 斷言 assert(config.proxies, 'config.proxies is not defined');
錯誤 未定義 config.proxy[ + index + ].base_path 斷言 assert(proxy.base_path, 'config.proxy[' + index + '].base_path is not defined');
錯誤 config.proxy[ + index + ].max_connections 不是數字 斷言 assert(typeof proxy.max_connections === 'number', 'config.proxy[' + index + '].max_connections is not a number');
錯誤 未定義 config.proxy[ + index + ].max_connections 斷言 assert(proxy.max_connections, 'config.proxy[' + index + '].max_connections is not defined');
錯誤 未定義 config.proxy[ + index + ].name assert assert(proxy.name, 'config.proxy[' + index + '].name is not defined');
錯誤 未定義 config.proxy[ + index + ].proxy_name 斷言 assert(proxy.target_name, 'config.proxy[' + index + '].proxy_name is not defined');
錯誤 未定義 config.proxy[ + index + ].revision assert assert(proxy.revision, 'config.proxy[' + index + '].revision is not defined');
錯誤 未定義 config.proxy[ + index + ].url 斷言 assert(proxy.url, 'config.proxy[' + index + '].url is not defined');
錯誤 config.quota.allow 不是數字 斷言 assert(typeof config.quota.allow === 'number', 'config.quota.allow is not a number');
錯誤 未定義 config.quota.allow 斷言 assert(config.quota.allow, 'config.quota.allow is not defined');
錯誤 config.quota.interval 不是數字 assert assert(typeof config.quota.interval === 'number', 'config.quota.interval is not a number');
錯誤 未定義 config.quota.interval 斷言 assert(config.quota.interval, 'config.quota.interval is not defined');
錯誤 未定義 config.spikearrest assert assert(config.spikearrest, 'config.spikearrest is not defined');
錯誤 config.spikearrest.allow 無效 斷言 assert(+config.spikearrest.allow > 0, 'config.spikearrest.allow is invalid');
錯誤 config.spikearrest.allow 不是數字 斷言 assert(typeof config.spikearrest.allow === 'number', 'config.spikearrest.allow is not a number');
錯誤 未定義 config.spikearrest.allow 斷言 assert(config.spikearrest.allow, 'config.spikearrest.allow is not defined');
錯誤 config.spikearrest.bufferSize 無效 斷言 assert(+config.spikearrest.bufferSize > 0, 'config.spikearrest.bufferSize is invalid');
錯誤 config.spikearrest.bufferSize 不是數字 斷言 assert(typeof config.spikearrest.bufferSize === 'number', 'config.spikearrest.bufferSize is not a number');
錯誤 未定義 config.spikearrest.timeUnit assert assert(config.spikearrest.timeUnit, 'config.spikearrest.timeUnit is not defined');
錯誤 重大錯誤:剖析下載的產品清單時發生錯誤 回呼
錯誤 嚴重錯誤:剖析已下載 Proxy 清單時發生錯誤 回呼
錯誤 DETECTED PRODUCT MISCONFIGURATION ERROR console.error 接著是 console.warn('using old cached configuration');
錯誤 讀取 throws 設定 yaml 檔案
錯誤 儲存設定至 回呼 設定 yaml 檔案
錯誤 致命錯誤:快取設定無法使用,無法繼續 回呼
錯誤 interval_message assert assert(+config.quota.interval > 0, interval_message);
錯誤 config.edge_config.proxy 的通訊協定無效 (應為 http: 或 https:: + proxy_url.protocol) 斷言 assert(proxy_url.protocol === 'http:' || proxy_url.protocol === 'https:', 'invalid protocol for config.edge_config.proxy (expected http: or https:): ' + proxy_url.protocol);
錯誤 config.edge_config.proxy 的 Proxy 主機無效 斷言 assert(proxy_url.hostname, 'invalid proxy host for config.edge_config.proxy: ' + proxy_url.hostname);
錯誤 似乎尚未設定 Edge Micro,請參閱管理員指南 回呼 結果:無法載入設定
錯誤 缺少鍵 assert assert(keys.key, 'key is missing');
錯誤 必須有 configDir 斷言 assert(configDir, 'must have configDir')
錯誤 必須提供選項 assert assert(options, 'must have options');
錯誤 必須有來源 assert assert(source, 'must have source')
錯誤 必須有來源才能載入 斷言 assert(options.source, 'must have source to load from')
錯誤 必須有 targetFile 斷言 assert(fileName, 'must have targetFile')
錯誤 選項不得為空值 斷言 assert(options, 'options cannot be null');
錯誤 options.keys 不得為空值 斷言 assert(options.keys, 'options.keys cannot be null');
錯誤 port_message 斷言 assert(+config.edgemicro.port < 65536, port_message);
錯誤 products 應為陣列 assert assert(Array.isArray(products), 'products should be an array');
錯誤 'proxies for product ' + product + ' should be an array' 斷言 assert(Array.isArray(product.proxies), 'proxies for product ' + product + ' should be an array');
錯誤 缺少密鑰 斷言 assert(keys.secret, 'secret is missing');
錯誤 未設定目標 斷言 assert(target, 'target is not set');
warn 下載設定時發生錯誤,請檢查 Bootstrap 設定 console.warn
warn 無法下載 jwt_public_key console.warn
warn 未啟用 jwk 金鑰 console.warn
warn message, 'download from', url, 'returned' console.warn 搜尋:(.*)\sdownload from\s(.*)\sreturned
warn 回應中找不到邊緣微型產品 console.warn
warn 在 org 中找不到邊緣微型 Proxy console.warn
warn 回應中未找到邊緣微型 Proxy console.warn
warn 找不到 org 中的產品 console.warn
warn 回應中找不到任何產品 console.warn
warn 使用舊的快取設定 console.warn

microgateway-plugins 模組

錯誤 設定不存在 throws 與 yaml 檔案相關
錯誤 apikey HTTP 回應 apiky 外掛程式發生錯誤
錯誤 bauth HTTP 回應 bauth 外掛程式發生錯誤
錯誤 extauth HTTP 回應 extauth 外掛程式失敗
錯誤 OAuth HTTP 回應 OAuth 外掛程式失敗
warn 處理 Apigee Analytics 時發生錯誤。允許繼續處理要求 logger.error
warn ignoring err console.warn apikeys、oauth 和 oauthv2 外掛程式
warn 剖析 JWT 發生錯誤: console.warn
warn oath 回應物件缺少 setHeader console.warn oauth 參數錯誤表示系統不會回報部分錯誤。
warn 執行階段未提供 oath 回應物件 console.warn oauth 參數錯誤
warn 執行階段未提供 oath 統計資料物件 console.warn oauth 參數錯誤

apigeetool-node 模組

錯誤 刪除快取失敗,狀態碼為 %d',res.statusCode 回呼 在 deletecache.js 中擲回。Apigee Edge 的狀態代碼。將堆疊追蹤錯誤傳遞至回呼,並附上以下訊息:done(new Error(errMsg));
錯誤 刪除產品失敗,狀態碼為 %d',res.statusCode 回呼 在 deleteproduct.js 中擲回。Apigee Edge 的狀態代碼。將堆疊追蹤錯誤傳遞至回呼,並附上以下訊息:done(new Error(errMsg));
錯誤 必須指定 org、api 和修訂版本! 回呼 在 fetchproxy.js 中擲回。設定發生錯誤。
錯誤 擷取 Proxy 時收到錯誤 %d:%j 回呼 在 fetchproxy.js 中擲回。狀態碼為 200 以外的值。
錯誤 建立應用程式失敗,狀態碼為 %d 回呼 在 createapp.js 中擲回。將所有錯誤以堆疊追蹤錯誤的形式傳回至回呼。不會產生任何控制台輸出或記錄項目。
錯誤 指令 + ' 失敗,狀態碼為 %d 回呼 在 command-utils.js 中擲回。無論解析並傳遞至此模組的指令為何,如果程式碼不是 200 或 201,都會產生錯誤訊息。格式化這則訊息,但不會列印。將堆疊追蹤錯誤連同訊息傳回至回呼。
錯誤 擷取共用流程時收到錯誤 %d:%s 回呼 在 fetchsharedflow.js 中擲回。針對任何非 200 的 HTTP 狀態。如果成功但無法寫入檔案,則會寫入至主控台:
寫入檔案失敗
錯誤文字:[stack_trace_error]
錯誤 建立 KeySecret 失敗,狀態碼為 %d',res.statusCode 回呼 在 createappkey.js 中擲回。適用於 Apigee Edge 傳回的 HTTP 狀態碼,但不是 200 或 201。
錯誤 建立快取失敗,狀態碼為 %d',res.statusCode 回呼 在 createcache.js 中擲回。適用於 Apigee Edge 傳回的 HTTP 狀態碼,但不是 200 或 201。
錯誤 Create Product 失敗,狀態碼為 %d',res.statusCode 回呼 在 createproduct.js 中擲回。適用於 Apigee Edge 傳回的 HTTP 狀態碼 (非 201)。如果 HTTP 狀態為 201,但回應包含錯誤 JSON,則錯誤 JSON 會轉送至回呼。
錯誤 刪除應用程式失敗,狀態碼為 %d',res.statusCode 回呼 在 deleteapp.js 中擲回。適用於 Apigee Edge 傳回的非 200 狀態碼。如果 HTTP 狀態為 200,但回應包含錯誤 JSON,則錯誤 JSON 會轉送至回呼。
錯誤 Create Developer 失敗,狀態碼為 %d',res.statusCode 回呼 在 createdeveloper.js 中擲回。適用於 Apigee Edge 傳回的 HTTP 狀態碼 (非 201)。如果 HTTP 狀態為 201,但回應包含錯誤 JSON,則錯誤 JSON 會轉送至回呼。
錯誤 刪除開發人員失敗,狀態碼為 %d',res.statusCode 回呼 在 deletedeveloper.js 中擲回。適用於 Apigee Edge 傳回的非 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.