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'); 将 statusCode 写入日志。 对于从目标端接收的介于 100 到 300 之间的代码,errors-middleware.js 会将 statusCode 重写为 500,以便返回给客户端。

  • HTTP 404 - 您可能会看到此状态以堆栈轨迹的形式生成,并包含消息 no match found for [API_path_name]

模块错误和警告

您可以使用这些信息配置提醒,以帮助您监控和管理 Edge Microgateway 部署。

以下术语显示在“错误参考”中的“处理脚本”下,表示 Edge Microgateway 中如何处理各种错误。

  • 断言:通常,当断言评估失败时,Edge Microgateway 会停止。不过,情况并非总是如此,因为“断言”会抛出可捕获的异常。
  • throws:系统可能会停止。
  • 回调:系统会将错误传递给回调,并可能继续运行。
类型 消息 Handler 备注

微网关模块

错误 org 为必填项 断言 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(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(options.org,"org is required");
错误 env 为必填项 断言 assert(options.env,"env is required")
错误 org 为必填项 断言 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');
错误 必须有 Secret 断言 assert(secret, 'must have a secret');
错误 必须配置 dir 断言 assert(dir, 'dir must be configured')
错误 回调必须存在 断言 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(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');
错误 plugin dir does not exist: + pluginDir 断言 assert(fs.existsSync(pluginDir), 'plugin dir does not exist: ' + pluginDir);
错误 plugin dir is not a directory: + pluginDir 断言 assert(stat.isDirectory(), 'plugin dir is not a directory: ' + pluginDir);
错误 error reading plugin dir: + 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(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
错误 未能初始化 configpath 文件 %s console.error 配置无法加载
错误 来自地区 API 的响应无效 console.error key-gen.js、cert-lib.js 和 private.js
错误 键为必填项 console.error 参数
错误 org 为必填项 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(config, 'config not initialized')
错误 必须具有配置 assert assert(config, ' must have a config')
错误 必须具有配置 断言 assert(config, 'must have config')
错误 配置必须具有 uid 断言 assert(config.uid, 'config must have uid');
错误 必须在配置中包含 config.edgemicro.logging 断言 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");
错误 ignoring invalid plugin handlers + name 断言 assert(_.isObject(middleware), 'ignoring invalid plugin handlers ' + name);
错误 选项必须包含配置 assert assert(config, 'options must contain config')
错误 插件必须具有名称 断言 assert(name,"plugin must have a name")
错误 name 必须是字符串 断言 assert(_.isString(name),"name must be a string");
错误 插件必须是函数 断言 assert(_.isFunction(plugin),"plugin must be a function(config,logger,stats){return {onresponse:function(req,res,data,next){}}}");
错误 必须具有键 断言 assert(key, 'must have a key');
错误 必须有 Secret 断言 assert(secret, 'must have a secret');
错误 必须具有源配置目录 断言 assert(source, 'must have a source config directory');
错误 加载插件时出错 console.error 未加载插件
错误 在错误处理程序中失败 callback HTTP server.on() 函数
错误 标头长度超出允许大小 HTTP 错误 不运行插件
错误 响应在工作完成之前完成 logger.error 目标插件无法运行
错误 处理程序抛出了异常 callback 捕获插件中的错误 (catch)
错误 error starting edge micro callback Edge Microgateway 无法启动
错误 插件必须是函数 throws
警告 console.error 警告 日志写入
警告 targetRequest 错误 调用目标错误处理机制 与目标建立连接时出现 HTTP 客户端错误
警告 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(+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(config.analytics.proxy === 'dummy', 'config.analytics.proxy is not "dummy"');
错误 未定义 config.analytics.proxy 断言 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(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(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 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(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(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(config.edgemicro.logging, 'config.edgemicro.logging is not defined');
错误 未定义 config.edgemicro.logging.dir 断言 if (!config.edgemicro.logging.to_console) assert(config.edgemicro.logging.dir, 'config.edgemicro.logging.dir is not defined');
错误 未定义 config.edgemicro.logging.level 断言 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(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(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(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(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(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(config.spikearrest.timeUnit, 'config.spikearrest.timeUnit is not defined');
错误 严重错误:解析下载的商品列表时出错 callback
错误 严重错误:解析下载的代理列表时出错 callback
错误 检测到产品配置错误 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(+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);
错误 config.edge_config.proxy 的代理主机无效 断言 assert(proxy_url.hostname, 'invalid proxy host for config.edge_config.proxy: ' + proxy_url.hostname);
错误 Edge Micro 似乎未配置,请参阅管理员指南 callback 结果:无法加载配置
错误 缺少键 断言 assert(keys.key, 'key is missing');
错误 必须有 configDir 断言 assert(configDir, 'must have configDir')
错误 必须提供选项 断言 assert(options, 'must have options');
错误 必须有来源 断言 assert(source, 'must have source')
错误 必须有要加载的来源 断言 assert(options.source, 'must have source to load from')
错误 必须有 targetFile assert assert(fileName, 'must have targetFile')
错误 options 不能为 null 断言 assert(options, 'options cannot be null');
错误 options.keys 不能为 null 断言 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');
错误 缺少 Secret 断言 assert(keys.secret, 'secret is missing');
错误 未设置目标 断言 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
警告 响应中未找到任何 Edge Micro 产品 console.warn
警告 在组织中未找到任何 Edge 微代理 console.warn
警告 响应中未找到边缘微代理 console.warn
警告 在 org 中未找到任何商品 console.warn
警告 响应中未找到任何商品 console.warn
警告 使用旧的缓存配置 console.warn

microgateway-plugins 模块

错误 配置不存在 throws 与 yaml 文件相关
错误 apikey HTTP 响应 apiky 插件中的失败情况
错误 bauth HTTP 响应 bauth 插件中的失败情况
错误 extauth HTTP 响应 extauth 插件中的失败情况
错误 OAuth HTTP 响应 oauth 插件失败
警告 处理 Apigee Analytics 时出错。允许继续处理请求 logger.error
警告 ignoring err console.warn apikeys、oauth 和 oauthv2 插件
警告 解析 JWT 时出错: console.warn
警告 oath 响应对象缺少 setHeader console.warn oauth 参数错误表示系统不会报告某些错误。
警告 运行时未提供 oath 响应对象 console.warn oauth 参数错误
警告 运行时未提供 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));
错误 必须同时指定 org、api 和 revision! 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 状态。如果成功但未能写入文件,则会写入控制台:
写入文件失败
错误文本:[stack_trace_error]
错误 Create KeySecret failed with status code %d', res.statusCode callback 在 createappkey.js 中抛出。对于 Apigee Edge 返回的非 200 或 201 的 HTTP 状态代码。
错误 Create Cache failed with status code %d', res.statusCode callback 在 createcache.js 中抛出。对于 Apigee Edge 返回的非 200 或 201 的 HTTP 状态代码。
错误 Create Product failed with status code %d', res.statusCode callback 在 createproduct.js 中抛出。对于 Apigee Edge 返回的非 201 的 HTTP 状态代码。 如果 HTTP 状态为 201,但响应包含错误 JSON,则错误 JSON 会被转发到回调。
错误 Delete App failed with status code %d', res.statusCode callback 在 deleteapp.js 中抛出。对于 Apigee Edge 返回的非 200 的 HTTP 状态代码。 如果 HTTP 状态为 200,但响应包含错误 JSON,则错误 JSON 会被转发到回调。
错误 Create Developer failed with status code %d', res.statusCode callback 在 createdeveloper.js 中抛出。对于 Apigee Edge 返回的非 201 的 HTTP 状态代码。 如果 HTTP 状态为 201,但响应包含错误 JSON,则错误 JSON 会被转发到回调。
错误 Delete Developer failed with status code %d', res.statusCode callback 在 deletedeveloper.js 中抛出。对于 Apigee Edge 返回的非 200 的 HTTP 状态代码。 如果 HTTP 状态为 200,但响应包含错误 JSON,则错误 JSON 会被转发到回调。

插件错误

accesscontrol plug-in

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

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

accumulate-request plug-in

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

No errors generated.

accumulate-resopnse plug-in

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

No errors generated.

analytics plug-in

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

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

apikeys plug-in

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

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

No Authorization header in the HTTP request

allowOAuthOnly == true

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

Unless allowInvalidAuthorization

invalid_authorization Invalid Authorization header 401 allowOAuthOnly == true

Authorization-header not in HTTP

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

bauth plug-in

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

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

Unless allowInvalidAuthorization

invalid_authorization Invalid Authorization header 401 allowOAuthOnly == true

Authorization-header not in HTTP

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

cloud-foundry-route-service plug-in

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

No errors generated.

cors plug-in

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

No errors generated.

eurekaclient plug-in

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

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

extauth plug-in

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

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

No Authorization header in the HTTP request

allowOAuthOnly == true

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

Unless allowInvalidAuthorization

invalid_authorization Invalid Authorization header 401 allowOAuthOnly == true

Authorization-header not in HTTP

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

header-uppercase plug-in

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

No errors generated.

healthcheck plug-in

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

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

invalidHeader plug-in

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

No errors generated.

json2xml plug-in

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

Parsing errors are sent to a callback.

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

monitor plug-in

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

No errors generated.

oauth plug-in (v1)

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

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

Unless allowInvalidAuthorization is set

invalid_token token could not be parsed 401 allowAPIKeyOnly == true

Bad token delivered

missing_authorization Missing Authorization header 401 allowNoAuthorization == false

Authorization-header in HTTP

allowOAuthOnly == true

invalid_authorization Invalid Authorization header 401 allowOAuthOnly == true

Authorization-header not in HTTP

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

oauthv2 plug-in

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

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

Unless allowInvalidAuthorization is set

invalid_token token could not be parsed 401 allowAPIKeyOnly == true

Bad token delivered

missing_authorization Missing Authorization header 401 allowNoAuthorization == false

Authorization-header in HTTP

allowOAuthOnly == true

invalid_authorization Invalid Authorization header 401 allowOAuthOnly == true

Authorization-header not in HTTP

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

quota plug-in

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

Defers to volos quota/apigee.

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

Authorization-header not in HTTP

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

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

quota-memory plug-in

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

Defers to volos quota/apigee.

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

Authorization-header not in HTTP

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

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

spikearrest plug-in

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

Defers to volos spikearrest/memory.

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

transform-uppercase plug-in

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

No errors generated.