Edge Microgate 错误参考文档

您正在查看 Apigee Edge 文档。
前往 Apigee X 文档
信息

本主题介绍了您在使用 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 会停止运行。不过,情况可能并非总是如此,因为“断言”会抛出可能会被捕获的异常。
  • 抛出:可能导致系统停止运行。
  • 回调:错误会传递给回调,系统可能会继续运行。
类型 消息 Handler 备注

microgateway 模块

错误 必须提供组织信息 assert assert(options.org,"org is required");
错误 必须提供 env assert assert(options.env,"env is required")
错误 必须提供用户名 assert assert(options.username || options.token,"username is required");
错误 必须提供密码 assert assert(options.password || options.token,"password is required")
错误 必须提供组织信息 assert assert(options.org,"org is required");
错误 必须提供 env assert assert(options.env,"env is required")
错误 必须提供用户名 assert assert(options.username || options.token,"username is required");
错误 必须提供密码 assert assert(options.password || options.token,"password is required")
错误 必须提供组织信息 assert assert(options.org,"org is required");
错误 必须提供 env assert assert(options.env,"env is required")
错误 必须提供组织信息 assert assert(options.org,"org is required");
错误 必须提供 env assert assert(options.env,"env is required")
错误 必须提供用户名 assert assert(options.username, 'username is required');
错误 必须提供密码 assert assert(options.password, 'password is required');
错误 必须提供组织信息 assert assert(options.org, 'org is required');
错误 必须提供 env assert assert(options.env, 'env is required');
错误 必须具有分配的目标文件 assert assert(targetFile, '必须有分配的目标文件')
错误 必须具有密钥 assert assert(key, 'must have a key');
错误 必须具有 Secret assert assert(secret, 'must have a secret');
错误 必须配置 dir assert assert(dir, 'dir must be configured')
错误 必须提供回调 assert assert(callback, 'callback must be present')
错误 必须提供用户名 assert assert(options.username, 'username is required');
错误 必须提供密码 assert assert(options.password, 'password is required');
错误 必须提供组织信息 assert assert(options.org, 'org is required');
错误 必须提供 env assert assert(options.env, 'env is required');
错误 必须提供 runtimeUrl assert assert(options.runtimeUrl, 'runtimeUrl is required');
错误 mgmtUrl 为必填项 assert assert(options.mgmtUrl, 'mgmtUrl is required');
错误 必须提供文件 assert assert(options.file,"file is required")
错误 必须具有目标 assert assert(options.target, 'must have target');
错误 插件未配置 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);
错误 读取插件目录时出错:+ pluginDir assert assert(dirs, 'error reading plugin dir: ' + pluginDir);
错误 必须具有令牌 assert assert(token, 'must have a token');
错误 configpath 不能为空 assert assert(config, 'configpath can't be empty');
错误 必须具有 EDGEMICRO_KEY assert assert(key, 'must have EDGEMICRO_KEY');
错误 必须具有 EDGEMICRO_SECRET assert assert(secret, 'must have EDGEMICRO_SECRET');
错误 配置不存在 抛出 与 YAML 文件相关
错误 edgemicro 似乎已在运行。 console.error 尝试覆盖 .sock 文件
错误 未能检查配置是否发生更改。将在以下时间后重试 console.error 边缘通信存在问题
错误 如果服务器未运行,可能是因为之前启动时关闭不正确。 console.error
错误 缺少 %s,请运行 console.error 缺少 (.*),请运行
错误 重新加载 edgemicro 失败 console.error 命令级
错误 未能成功停止 edgemicro console.error 命令级
错误 “尝试移除 '” + ipcPath + “' 并重新开始” console.error
错误 “缓存配置”+ 缓存 +“不存在。正在退出。” console.error
错误 无法写入配置文件: console.error 配置将失败
错误 配置文件未下载: console.error 配置将失败
错误 边缘微服务未能启动 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
错误 未能初始化 configpath 文件 %s console.error 配置未加载
错误 来自地区 API 的响应无效 console.error key-gen.js、cert-lib.js 和 private.js
错误 必须提供密钥 console.error 参数
错误 必须提供组织信息 console.error 参数
错误 端口不可用。 console.error 参数
错误 必须提供密钥 console.error 参数
错误 网址协议不受支持: console.error 配置信息表明互联网协议不在 Edge Microgateway 的范围内
错误 验证分析负面情况:失败 console.error 可能崩溃/失败
错误 使用载荷验证分析:失败 console.error 可能崩溃/失败
错误 验证引导网址的可用性:失败 console.error 可能崩溃/失败
错误 验证 jwt_public_key 是否可用:失败 console.error 可能崩溃/失败
错误 验证商品库存状况:失败 console.error 可能崩溃/失败
错误 验证已配置商品的配额:失败 console.error 可能崩溃/失败
警告 未能从网关检索到配置。继续操作,将尝试使用缓存的副本。 console.error
警告 您的组织中已存在 KVM console.log
警告 已部署 console.log
警告 找不到序列化插件: console.warn
警告 pluginDir %s 不存在 console.log pluginDir (.*) 不存在

microgateway-core 模块

错误 配置未初始化 assert assert(config, 'config not initialized')
错误 必须具有配置 assert assert(config, ' must have a config')
错误 必须具有配置 assert assert(config, 'must have config')
错误 配置必须具有 uid assert assert(config.uid, 'config must have uid');
错误 必须在配置中包含 config.edgemicro.logging assert assert(logConfig, 'must have config.edgemicro.logging in config');
错误 必须具有请求方法 assert assert(httpLibrary.request, 'must have request method');
错误 必须在内存中加载插件 assert assert(options.plugin, "must have plugin loaded in memory");
错误 init 必须是一个函数 assert assert(_.isFunction(options.plugin.init), 'init must be a function');
错误 必须具有插件名称 assert assert(options.pluginName, "must have plugin name");
错误 忽略无效的插件处理程序 + 名称 assert assert(_.isObject(middleware), 'ignoring invalid plugin handlers ' + name);
错误 选项必须包含配置 assert assert(config, 'options must contain config')
错误 插件必须具有名称 assert assert(name,"plugin must have a name")
错误 名称必须是字符串 assert 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 assert(key, 'must have a key');
错误 必须具有 Secret assert assert(secret, 'must have a secret');
错误 必须具有源配置目录 assert assert(source, 'must have a source config directory');
错误 加载插件时出错 console.error 插件未加载
错误 在错误处理程序中失败 回调 HTTP server.on() 函数
错误 标头长度超过允许的大小 HTTP 错误 无法运行插件
错误 在完成工作之前响应已结束 logger.error 目标插件未运行
错误 处理程序抛出了异常 回调 捕获来自插件的错误(捕获)
错误 启动 Edge Micro 时出错 回调 Edge Microgateway 未启动
错误 插件必须是函数 抛出
警告 console.error 警告 日志写入
警告 targetRequest 错误 调用目标错误处理 与目标连接时出现 HTTP 客户端错误
警告 targetResponse 错误 调用目标错误处理 与目标服务器连接时出现 HTTP 目标服务器错误(如客户端中所示)

microgateway-config 模块

错误 allow_message assert assert(+config.quota.allow > 0, allow_message);
错误 配置不存在 抛出 配置 yaml 文件
错误 配置为空 抛出 配置 yaml 文件
错误 配置不是文件 抛出 配置 yaml 文件
错误 config is not defined assert assert(config, 'config is not defined');
错误 config.analytics.batchSize 无效 assert assert(+config.analytics.batchSize > 0, 'config.analytics.batchSize is invalid');
错误 config.analytics.batchSize 不是数字 assert 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 assert(typeof config.analytics.bufferSize === 'number', 'config.analytics.bufferSize is not a number');
错误 config.analytics.flushInterval 无效 assert assert(+config.analytics.flushInterval > 0, 'config.analytics.flushInterval is invalid');
错误 config.analytics.flushInterval 不是数字 assert assert(typeof config.analytics.flushInterval === 'number', 'config.analytics.flushInterval is not a number');
错误 config.analytics.proxy 不是“虚拟” 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 assert(typeof config.analytics.proxy_revision === 'number', 'config.analytics.proxy_revision is not a number');
错误 未定义 config.analytics.proxy_revision assert assert(config.analytics.proxy_revision, 'config.analytics.proxy_revision is not defined');
错误 config.analytics.source 不是“microgateway” assert 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 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 assert(typeof config.apikeys.public_key === 'string', 'config.apikeys.public_key is not defined');
错误 未定义 config.edge_config assert assert(config.edge_config, 'config.edge_config is not defined');
错误 未定义 config.edge_config.bootstrap assert assert(config.edge_config.bootstrap, 'config.edge_config.bootstrap is not defined');
错误 config.edge_config.jwt_public_key 未定义 assert 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 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 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 assert(typeof config.edge_config.retry_interval === 'number', 'config.edge_config.retry_interval is not a number');
错误 config.edge_config.retry_interval 过小(最小值为 5 秒) assert assert(config.edge_config.retry_interval >= 5000, 'config.edge_config.retry_interval is too small (min 5s)');
错误 config.edgemicro 未定义 assert 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 assert(typeof config.edgemicro.max_connections === 'number', 'config.edgemicro.max_connections is not a number');
错误 未定义 config.edgemicro.max_connections assert assert(config.edgemicro.max_connections, 'config.edgemicro.max_connections is not defined');
错误 config.edgemicro.plugins.sequence 不是数组 assert assert(Array.isArray(config.edgemicro.plugins.sequence), 'config.edgemicro.plugins.sequence is not an array');
错误 config.edgemicro.port 未定义 assert 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 assert(typeof config.oauth.allowNoAuthorization === 'boolean', 'config.oauth.allowNoAuthorization is not defined');
错误 未定义 config.oauth.public_key assert assert(typeof config.oauth.public_key === 'string', 'config.oauth.public_key is not defined');
错误 未定义 config.oauthv2.public_key assert assert(typeof config.oauthv2.public_key === 'string', 'config.oauthv2.public_key is not defined');
错误 config.proxies 未定义 assert assert(config.proxies, 'config.proxies is not defined');
错误 未定义 config.proxy[ + index + ].base_path assert assert(proxy.base_path, 'config.proxy[' + index + '].base_path is not defined');
错误 config.proxy[ + index + ].max_connections 不是数字 assert assert(typeof proxy.max_connections === 'number', 'config.proxy[' + index + '].max_connections is not a number');
错误 未定义 config.proxy[ + index + ].max_connections assert 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 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 assert(proxy.url, 'config.proxy[' + index + '].url is not defined');
错误 config.quota.allow 不是数字 assert assert(typeof config.quota.allow === 'number', 'config.quota.allow is not a number');
错误 未定义 config.quota.allow assert 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 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 assert(+config.spikearrest.allow > 0, 'config.spikearrest.allow is invalid');
错误 config.spikearrest.allow 不是数字 assert assert(typeof config.spikearrest.allow === 'number', 'config.spikearrest.allow is not a number');
错误 未定义 config.spikearrest.allow assert assert(config.spikearrest.allow, 'config.spikearrest.allow is not defined');
错误 config.spikearrest.bufferSize 无效 assert assert(+config.spikearrest.bufferSize > 0, 'config.spikearrest.bufferSize is invalid');
错误 config.spikearrest.bufferSize 不是数字 assert 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');
错误 严重错误:解析下载的商品列表时出错 回调
错误 严重错误:解析下载的代理列表时出错 回调
错误 检测到产品配置错误 console.error 然后是 console.warn('using old cached configuration');
错误 从以下位置读取配置时出错: 抛出 配置 yaml 文件
错误 保存配置到以下位置时出错: 回调 配置 yaml 文件
错误 致命错误:缓存的配置不可用,无法继续 回调
错误 interval_message assert assert(+config.quota.interval > 0, interval_message);
错误 config.edge_config.proxy 的协议无效(预期为 http: 或 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);
错误 配置的代理主机无效。edge_config.proxy assert 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 assert(configDir, 'must have configDir')
错误 必须具备的选项 assert assert(options, 'must have options');
错误 必须具有来源 assert assert(source, 'must have source')
错误 必须有要加载的来源 assert assert(options.source, 'must have source to load from')
错误 必须具有 targetFile assert assert(fileName, 'must have targetFile')
错误 选项不得为 null assert assert(options, 'options cannot be null');
错误 options.keys 不能为 null assert assert(options.keys, 'options.keys cannot be null');
错误 port_message assert assert(+config.edgemicro.port < 65536, port_message);
错误 商品应为数组 assert assert(Array.isArray(products), 'products should be an array');
错误 “商品‘”+ 商品 +“’的代理应为数组” assert assert(Array.isArray(product.proxies), 'proxies for product ' + product + ' should be an array');
错误 缺少 secret assert assert(keys.secret, 'secret is missing');
错误 未设置目标 assert assert(target, 'target is not set');
警告 下载配置时出错,请检查引导配置 console.warn
警告 未能下载 jwt_public_key console.warn
警告 未启用 JWK 密钥 console.warn
警告 message, 'download from', url, 'returned' console.warn 搜索:(.*)\sdownload from\s(.*)\sreturned
警告 在响应中未找到任何边缘微产品 console.warn
警告 组织中未找到任何边缘微代理 console.warn
警告 响应中未找到任何边缘微代理 console.warn
警告 组织中未找到任何商品 console.warn
警告 回答中未找到任何商品 console.warn
警告 使用旧的缓存配置 console.warn

microgateway-plugins 模块

错误 配置不存在 抛出 与 YAML 文件相关
错误 apikey HTTP 响应 apiky 插件中的故障
错误 bauth HTTP 响应 bauth 插件中的失败
错误 extauth HTTP 响应 extauth 插件中的故障
错误 Oauth HTTP 响应 oauth 插件中的故障
警告 处理 Apigee Analytics 时出错。允许继续处理请求 logger.error
警告 忽略错误 console.warn apikeys、oauth 和 oauthv2 插件
警告 解析 JWT 时出错: console.warn
警告 oath 响应对象缺少 setHeader console.warn oauth 参数错误表示某些错误不会报告。
警告 运行时未提供 oath 响应对象 console.warn oauth 参数错误
警告 运行时未提供 oath 统计信息对象 console.warn oauth 参数错误

apigeetool-node 模块

错误 删除缓存失败,状态代码为 %d', res.statusCode callback 在 deletecache.js 中抛出。来自 Apigee Edge 的状态代码。 向回调传递包含以下消息的堆栈轨迹错误:done(new Error(errMsg));
错误 删除商品失败,状态代码为 %d',res.statusCode callback 在 deleteproduct.js 中抛出。来自 Apigee Edge 的状态代码。 向回调传递包含以下消息的堆栈轨迹错误:done(new Error(errMsg));
错误 必须指定组织、API 和修订版本! callback 在 fetchproxy.js 中抛出。配置错误。
错误 提取代理时收到错误 %d:%j callback 在 fetchproxy.js 中抛出。200 以外的状态代码。
错误 创建应用失败,状态代码为 %d callback 在 createapp.js 中抛出。将所有错误作为堆栈轨迹错误传递回回调。 不进行任何控制台打印或日志条目记录。
错误 命令“+”失败,状态代码为 %d callback 在 command-utils.js 中抛出。对于解析并传递给此模块的任何命令,如果代码不是 200 或 201,则会生成错误消息。设置此消息的格式,但不打印。将包含消息的堆栈轨迹错误传递回回调。
错误 提取共享流时收到错误 %d:%s callback 在 fetchsharedflow.js 中抛出。对于任何非 200 的 HTTP 状态。如果成功,但无法写入文件,则会写入控制台:
Failed to write file
Error text: [stack_trace_error]
错误 创建 KeySecret 失败,状态代码为 %d', res.statusCode callback 在 createappkey.js 中抛出。对于来自 Apigee Edge 的非 200 或 201 HTTP 状态代码。
错误 创建缓存失败,状态代码为 %d', res.statusCode callback 在 createcache.js 中抛出。对于来自 Apigee Edge 的非 200 或 201 的 HTTP 状态代码。
错误 创建商品失败,状态代码为 %d',res.statusCode callback 在 createproduct.js 中抛出。对于来自 Apigee Edge 的非 201 HTTP 状态代码。 如果 HTTP 状态为 201,但响应包含错误 JSON,则错误 JSON 会转发到回调。
错误 删除应用失败,状态代码为 %d', res.statusCode callback 在 deleteapp.js 中抛出。对于来自 Apigee Edge 的非 200 HTTP 状态代码。 如果 HTTP 状态为 200,但响应包含错误 JSON,则错误 JSON 会转发到回调。
错误 创建开发者失败,状态代码为 %d', res.statusCode callback 在 createdeveloper.js 中抛出。对于来自 Apigee Edge 的非 201 HTTP 状态代码。 如果 HTTP 状态为 201,但响应包含错误 JSON,则错误 JSON 会转发到回调。
错误 删除开发者失败,状态代码为 %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.