You're viewing Apigee Edge documentation.
Go to the
Apigee X documentation. info
This topic describes errors and warnings you may encounter with Edge Microgateway.
General application errors
HTTP 500, failed in error handler - Most errors will have this number, as will some errors returned from targets. In particular, errors-middleware.js is used throughout the microgateway-core module. When it is used, it writes statusCodes to logging using the Edge Microgateway
logger object: logger.error(err, 'failed in error handler');
. For codes received from targets between 100 and 300, errors-middleware.js rewrites the statusCode to 500 for return to the client.HTTP 404 - You may see this status produced as a stack trace with the message,
no match found for [API_path_name]
.
Module errors and warnings
You can use this information to configure alerts that help you monitor and manage your Edge Microgateway deployment.
The following terms, which appear in the error reference under "Handler," indicate how the various errors are handled in Edge Microgateway.
- assert: Typically, Edge Microgateway will stop when an assert evaluation fails. However, that may not always be the case, since "asserts" throw exceptions that may be caught.
- throws: Possible system halt.
- callback: The error is passed to a callback and the system may continue.
Type | Message | Handler | Notes |
---|---|---|---|
microgateway module |
|||
error | org is required | assert | assert(options.org,"org is required"); |
error | env is required | assert | assert(options.env,"env is required") |
error | username is required | assert | assert(options.username || options.token,"username is required"); |
error | password is required | assert | assert(options.password || options.token,"password is required") |
error | org is required | assert | assert(options.org,"org is required"); |
error | env is required | assert | assert(options.env,"env is required") |
error | username is required | assert | assert(options.username || options.token,"username is required"); |
error | password is required | assert | assert(options.password || options.token,"password is required") |
error | org is required | assert | assert(options.org,"org is required"); |
error | env is required | assert | assert(options.env,"env is required") |
error | org is required | assert | assert(options.org,"org is required"); |
error | env is required | assert | assert(options.env,"env is required") |
error | username is required | assert | assert(options.username, 'username is required'); |
error | password is required | assert | assert(options.password, 'password is required'); |
error | org is required | assert | assert(options.org, 'org is required'); |
error | env is required | assert | assert(options.env, 'env is required'); |
error | must have an assigned target file | assert | assert(targetFile, 'must have an assigned target file') |
error | must have a key | assert | assert(key, 'must have a key'); |
error | must have a secret | assert | assert(secret, 'must have a secret'); |
error | dir must be configured | assert | assert(dir, 'dir must be configured') |
error | callback must be present | assert | assert(callback, 'callback must be present') |
error | username is required | assert | assert(options.username, 'username is required'); |
error | password is required | assert | assert(options.password, 'password is required'); |
error | org is required | assert | assert(options.org, 'org is required'); |
error | env is required | assert | assert(options.env, 'env is required'); |
error | runtimeUrl is required | assert | assert(options.runtimeUrl, 'runtimeUrl is required'); |
error | mgmtUrl is required | assert | assert(options.mgmtUrl, 'mgmtUrl is required'); |
error | file is required | assert | assert(options.file,"file is required") |
error | must have target | 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 | must have a token | assert | assert(token, 'must have a token'); |
error | configpath can't be empty | assert | assert(config, 'configpath can't be empty'); |
error | must have EDGEMICRO_KEY | assert | assert(key, 'must have EDGEMICRO_KEY'); |
error | must have EDGEMICRO_SECRET | assert | assert(secret, 'must have EDGEMICRO_SECRET'); |
error | config does not exist | throws | related to yaml file |
error | edgemicro seems to be already running. | console.error | attempting to overwrite a .sock file |
error | Failed to check for change in Config. Will retry after | console.error | problem with edge communication |
error | If the server is not running, it might because of incorrect shutdown of the prevous start. | console.error | |
error | Missing %s, Please run | console.error | Missing (.*), Please run |
error | Reloading edgemicro was unsuccessful | console.error | command level |
error | Stopping edgemicro was unsuccessful | console.error | Command level |
error | 'Try removing ' + ipcPath + ' and start again' | console.error | |
error | 'cache configuration ' + cache + ' does not exist. exiting.' | console.error | |
error | config file could not be written: | console.error | Configuration will fail |
error | config file did not download: | console.error | Configuration will fail |
error | edge micro failed to start | console.error | It should not be running |
error | edgemicro is not running. | console.error | Check process it should not be listed |
error | env is required | console.error | Environment variables required to run |
error | error - editing apiproxy Callout.xml | console.error | File access |
error | error - editing apiproxy default.xml | console.error | File access |
error | error checking for cert. Installing new cert. | console.error | Public key can not be used |
error | error retrieving region for org | console.error | key-gen.js, cert-lib.js, and private.js |
error | error uploading credentials | console.error | Cannot sync public key with Edge |
error | failed | console.error | key-gen.js |
error | failed to init configpath file %s | console.error | Configuration not loading |
error | invalid response from region api | console.error | key-gen.js, cert-lib.js, and private.js |
error | key is required | console.error | Parameter |
error | org is required | console.error | Parameter |
error | port is not available. | console.error | Parameter |
error | secret is required | console.error | Parameter |
error | url protocol not supported: | console.error | Config information indicates an internet protocol not in the scope of Edge Microgateway |
error | verifying analytics negative case: FAIL | console.error | Possible crash/fail |
error | verifying analytics with payload: FAIL | console.error | Possible crash/fail |
error | verifying bootstrap url availability:FAIL | console.error | Possible crash/fail |
error | verifying jwt_public_key availability: FAIL | console.error | Possible crash/fail |
error | verifying products availability: FAIL | console.error | Possible crash/fail |
error | verifying quota with configured products: FAIL | console.error | Possible crash/fail |
warn | failed to retrieve config from gateway. continuing, will try cached copy.. | console.error | |
warn | KVM already exists in your org | console.log | |
warn | is already deployed | console.log | |
warn | sequenced plugin not found: | console.warn | |
warn | pluginDir %s does not exist | console.log | pluginDir (.*) does not exist |
microgateway-core module |
|||
error | config not initialized | assert | assert(config, 'config not initialized') |
error | must have a config | assert | assert(config, ' must have a config') |
error | must have config | assert | assert(config, 'must have config') |
error | config must have uid | assert | assert(config.uid, 'config must have uid'); |
error | must have config.edgemicro.logging in config | assert | assert(logConfig, 'must have config.edgemicro.logging in config'); |
error | must have request method | assert | assert(httpLibrary.request, 'must have request method'); |
error | must have plugin loaded in memory | assert | assert(options.plugin, "must have plugin loaded in memory"); |
error | init must be a function | assert | assert(_.isFunction(options.plugin.init), 'init must be a function'); |
error | must have plugin name | assert | assert(options.pluginName, "must have plugin name"); |
error | ignoring invalid plugin handlers + name | assert | assert(_.isObject(middleware), 'ignoring invalid plugin handlers ' + name); |
error | options must contain config | assert | assert(config, 'options must contain config') |
error | plugin must have a name | assert | assert(name,"plugin must have a name") |
error | name must be a string | assert | assert(_.isString(name),"name must be a string"); |
error | plugin must be a function | assert | assert(_.isFunction(plugin),"plugin must be a function(config,logger,stats){return {onresponse:function(req,res,data,next){}}}"); |
error | must have a key | assert | assert(key, 'must have a key'); |
error | must have a secret | assert | assert(secret, 'must have a secret'); |
error | must have a source config directory | assert | assert(source, 'must have a source config directory'); |
error | error loading plugin | console.error | Plug-in not loaded |
error | failed in error handler | callback | HTTP server.on() function |
error | header length more than allowed size | HTTP error | Does not run plugin |
error | response finished before work can be done | logger.error | Target plug-in does not run |
error | handler threw an exception | callback | Capture error from plug-in (catch) |
error | error starting edge micro | callback | Edge Microgateway does not start |
error | plugin must be a function | throws | |
warn | console.error | warns | Log writing |
warn | targetRequest error | invoke target error handling | HTTP client error in connection with target |
warn | targetResponse error | invoke target error handling | HTTP target server error in connection with target as seen in client |
microgateway-config module |
|||
error | allow_message | assert | assert(+config.quota.allow > 0, allow_message); |
error | config does not exist | throws | Configuration yaml file |
error | config is empty | throws | Configuration yaml file |
error | config is not a file | throws | Configuration yaml file |
error | config is not defined | assert | assert(config, 'config is not defined'); |
error | config.analytics.batchSize is invalid | assert | assert(+config.analytics.batchSize > 0, 'config.analytics.batchSize is invalid'); |
error | config.analytics.batchSize is not a number | assert | assert(typeof config.analytics.batchSize === 'number', 'config.analytics.batchSize is not a number'); |
error | config.analytics.bufferSize is invalid | assert | assert(+config.analytics.bufferSize > 0, 'config.analytics.bufferSize is invalid'); |
error | config.analytics.bufferSize is not a number | assert | assert(typeof config.analytics.bufferSize === 'number', 'config.analytics.bufferSize is not a number'); |
error | config.analytics.flushInterval is invalid | assert | assert(+config.analytics.flushInterval > 0, 'config.analytics.flushInterval is invalid'); |
error | config.analytics.flushInterval is not a number | assert | assert(typeof config.analytics.flushInterval === 'number', 'config.analytics.flushInterval is not a number'); |
error | config.analytics.proxy is not "dummy" | assert | assert(config.analytics.proxy === 'dummy', 'config.analytics.proxy is not "dummy"'); |
error | config.analytics.proxy is not defined | assert | assert(config.analytics.proxy, 'config.analytics.proxy is not defined'); |
error | config.analytics.proxy_revision is not a number | assert | assert(typeof config.analytics.proxy_revision === 'number', 'config.analytics.proxy_revision is not a number'); |
error | config.analytics.proxy_revision is not defined | assert | assert(config.analytics.proxy_revision, 'config.analytics.proxy_revision is not defined'); |
error | config.analytics.source is not "microgateway" | assert | assert(config.analytics.source === 'microgateway', 'config.analytics.source is not "microgateway"'); |
error | config.analytics.source is not defined | assert | assert(config.analytics.source, 'config.analytics.source is not defined'); |
error | config.analytics.uri is not a string | assert | assert(typeof config.analytics.uri === 'string', 'config.analytics.uri is not a string'); |
error | config.analytics.uri is not defined | assert | assert(config.analytics.uri, 'config.analytics.uri is not defined'); |
error | config.apikeys.public_key is not defined | assert | assert(typeof config.apikeys.public_key === 'string', 'config.apikeys.public_key is not defined'); |
error | config.edge_config is not defined | assert | assert(config.edge_config, 'config.edge_config is not defined'); |
error | config.edge_config.bootstrap is not defined | assert | assert(config.edge_config.bootstrap, 'config.edge_config.bootstrap is not defined'); |
error | config.edge_config.jwt_public_key is not defined | assert | assert(config.edge_config.jwt_public_key, 'config.edge_config.jwt_public_key is not defined'); |
error | config.edge_config.proxy must be defined if config.edge_config.proxy_tunnel is defined | assert | assert(typeof config.edge_config.proxy !== 'undefined', 'config.edge_config.proxy must be defined if config.edge_config.proxy_tunnel is defined'); |
error | config.edge_config.proxy_tunnel is not a boolean | assert | assert(typeof config.edge_config.proxy_tunnel === 'boolean', 'config.edge_config.proxy_tunnel is not a boolean'); |
error | config.edge_config.refresh_interval is not a number | assert | assert(typeof config.edge_config.refresh_interval === 'number', 'config.edge_config.refresh_interval is not a number'); |
error | config.edge_config.refresh_interval is too small (min 1h) | assert | assert(config.edge_config.refresh_interval >= 3600000, 'config.edge_config.refresh_interval is too small (min 1h)'); |
error | config.edge_config.retry_interval is not a number | assert | assert(typeof config.edge_config.retry_interval === 'number', 'config.edge_config.retry_interval is not a number'); |
error | config.edge_config.retry_interval is too small (min 5s) | assert | assert(config.edge_config.retry_interval >= 5000, 'config.edge_config.retry_interval is too small (min 5s)'); |
error | config.edgemicro is not defined | assert | assert(config.edgemicro, 'config.edgemicro is not defined'); |
error | config.edgemicro.logging is not defined | assert | assert(config.edgemicro.logging, 'config.edgemicro.logging is not defined'); |
error | config.edgemicro.logging.dir is not defined | assert | if (!config.edgemicro.logging.to_console) assert(config.edgemicro.logging.dir, 'config.edgemicro.logging.dir is not defined'); |
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 is not a number | assert | assert(typeof config.edgemicro.max_connections === 'number', 'config.edgemicro.max_connections is not a number'); |
error | config.edgemicro.max_connections is not defined | assert | assert(config.edgemicro.max_connections, 'config.edgemicro.max_connections is not defined'); |
error | config.edgemicro.plugins.sequence is not an array | 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 is not defined | 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 is not defined | assert | assert(typeof config.oauth.public_key === 'string', 'config.oauth.public_key is not defined'); |
error | config.oauthv2.public_key is not defined | 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 is not defined | assert | assert(proxy.base_path, 'config.proxy[' + index + '].base_path is not defined'); |
error | config.proxy[ + index + ].max_connections is not a number | assert | assert(typeof proxy.max_connections === 'number', 'config.proxy[' + index + '].max_connections is not a number'); |
error | config.proxy[ + index + ].max_connections is not defined | 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 is not defined | 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 is not a number | assert | assert(typeof config.quota.allow === 'number', 'config.quota.allow is not a number'); |
error | config.quota.allow is not defined | assert | assert(config.quota.allow, 'config.quota.allow is not defined'); |
error | config.quota.interval is not a number | assert | assert(typeof config.quota.interval === 'number', 'config.quota.interval is not a number'); |
error | config.quota.interval is not defined | assert | assert(config.quota.interval, 'config.quota.interval is not defined'); |
error | config.spikearrest is not defined | assert | assert(config.spikearrest, 'config.spikearrest is not defined'); |
error | config.spikearrest.allow is invalid | assert | assert(+config.spikearrest.allow > 0, 'config.spikearrest.allow is invalid'); |
error | config.spikearrest.allow is not a number | assert | assert(typeof config.spikearrest.allow === 'number', 'config.spikearrest.allow is not a number'); |
error | config.spikearrest.allow is not defined | assert | assert(config.spikearrest.allow, 'config.spikearrest.allow is not defined'); |
error | config.spikearrest.bufferSize is invalid | assert | assert(+config.spikearrest.bufferSize > 0, 'config.spikearrest.bufferSize is invalid'); |
error | config.spikearrest.bufferSize is not a number | assert | assert(typeof config.spikearrest.bufferSize === 'number', 'config.spikearrest.bufferSize is not a number'); |
error | config.spikearrest.timeUnit is not defined | assert | assert(config.spikearrest.timeUnit, 'config.spikearrest.timeUnit is not defined'); |
error | CRITICAL ERROR: error parsing downloaded product list | callback | |
error | CRITICAL ERROR: error parsing downloaded proxy list | callback | |
error | DETECTED PRODUCT MISCONFIGURATION ERROR | console.error | Followed by console.warn('using old cached configuration'); |
error | error reading config from | throws | Configuration yaml file |
error | error saving config to | callback | Configuration yaml file |
error | fatal: cached config not available, unable to continue | callback | |
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 | it looks like edge micro has not been configured, please see the admin guide | callback | Result: Fails to load configuration |
error | key is missing | assert | assert(keys.key, 'key is missing'); |
error | must have configDir | assert | assert(configDir, 'must have configDir') |
error | must have options | assert | assert(options, 'must have options'); |
error | must have source | assert | assert(source, 'must have source') |
error | must have source to load from | assert | assert(options.source, 'must have source to load from') |
error | must have targetFile | assert | assert(fileName, 'must have targetFile') |
error | options cannot be null | assert | assert(options, 'options cannot be null'); |
error | options.keys cannot be null | assert | assert(options.keys, 'options.keys cannot be null'); |
error | port_message | assert | assert(+config.edgemicro.port < 65536, port_message); |
error | products should be an array | 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 | secret is missing | assert | assert(keys.secret, 'secret is missing'); |
error | target is not set | 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 keys are not enabled | 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 | no products found in org | console.warn | |
warn | no products found in response | console.warn | |
warn | using old cached configuration | console.warn | |
microgateway-plugins module |
|||
error | config does not exist | throws | Related to yaml file |
error | apikey | HTTP response | Failures in apiky plugin |
error | bauth | HTTP response | Failures in bauth plugin |
error | extauth | HTTP response | Failures in extauth plugin |
error | Oauth | HTTP response | Failures in oauth plugin |
warn | Error encountered processing Apigee analytics. Allowing request processing to continue | logger.error | |
warn | ignoring err | console.warn | apikeys, oauth, and oauthv2 plug-ins |
warn | error parsing jwt: | console.warn | |
warn | oath response object lacks setHeader | console.warn | oauth parameter error indicates some errors will not be reported. |
warn | oath response object is not supplied by runtime | console.warn | oauth parameter error |
warn | oath stats object is not supplied by runtime | console.warn | oauth parameter error |
apigeetool-node module |
|||
error | Delete Cache failed with status code %d', res.statusCode | callback | Thrown in deletecache.js. Status code from Apigee Edge. Passes to callback a stack trace error with this message: done(new Error(errMsg)); |
error | Delete Product failed with status code %d', res.statusCode | callback | Thrown in deleteproduct.js. Status code from Apigee Edge. Passes to callback a stack trace error with this message: done(new Error(errMsg)); |
error | org, api and revision must all be specified! | callback | Thrown in fetchproxy.js. Configuration error. |
error | Received error %d when fetching proxy: %j | callback | Thrown in fetchproxy.js. Status code other than 200. |
error | Create App failed with status code %d | callback | Thrown in createapp.js. Passes all errors back to callbacks as stack trace errors. Makes no console prints or log entries. |
error | command + ' failed with status code %d | callback | Thrown in command-utils.js. For whatever command is parsed and passed to this module, any code not 200 or 201 will generate an error message. Formats this message but does not print. Passes a stack trace error with the message back to callbacks. |
error | Received error %d when fetching shared flow: %s | callback | Thrown in fetchsharedflow.js. For any HTTP status that's not 200. If it succeed but fails
to write a file, it writes to the console: Failed to write file Error text: [stack_trace_error] |
error | Create KeySecret failed with status code %d', res.statusCode | callback | Thrown in createappkey.js. For HTTP status codes from Apigee Edge that aren't 200 or 201. |
error | Create Cache failed with status code %d', res.statusCode | callback | Thrown in createcache.js. For HTTP status codes from Apigee Edge that aren't 200 or 201. |
error | Create Product failed with status code %d', res.statusCode | callback | Thrown in createproduct.js. For HTTP status codes from Apigee Edge that aren't 201. If the HTTP status is 201 but the response includes error JSON, the error JSON is forwarded to the callback. |
error | Delete App failed with status code %d', res.statusCode | callback | Thrown in deleteapp.js. For HTTP status codes from Apigee Edge that aren't 200. If the HTTP status is 200 but the response includes error JSON, the error JSON is forwarded to the callback. |
error | Create Developer failed with status code %d', res.statusCode | callback | Thrown in createdeveloper.js. For HTTP status codes from Apigee Edge that aren't 201. If the HTTP status is 201 but the response includes error JSON, the error JSON is forwarded to the callback. |
error | Delete Developer failed with status code %d', res.statusCode | callback | Thrown in deletedeveloper.js. For HTTP status codes from Apigee Edge that aren't 200. If the HTTP status is 200 but the response includes error JSON, the error JSON is forwarded to the callback. |
Plug-in errors
accesscontrol plug-in
This section describes the error codes and messages that are returned by the
accesscontrol
plug-in with descriptions of possible causes.
Error | Message | HTTP status | Possible Causes |
---|---|---|---|
Not printed | Forbidden | 403 | Access control rule |
accumulate-request plug-in
This section describes the error codes and messages that are returned by the
accumulate-request
plug-in with descriptions of possible causes.
No errors generated.
accumulate-resopnse plug-in
This section describes the error codes and messages that are returned by the
accumulate-response
plug-in with descriptions of possible causes.
No errors generated.
analytics plug-in
This section describes the error codes and messages that are returned by the
analytics
plug-in with descriptions of possible causes.
Errors encountered processing Apigee analytics are written to the Edge Microgateway log. Edge Microgateway processing continues.
apikeys plug-in
This section describes the error codes and messages that are returned by the
apikeys
plug-in with descriptions of possible causes.
Error | Message | HTTP status | Possible Causes |
---|---|---|---|
invalid_request | Invalid Request | 400 | allowNoAuthorization == false
No Authorization header in the HTTP request allowOAuthOnly == true |
invalid_request | API Key Verification URL not configured | 400 | Verification API service not in header. |
access_denied | Copy service message | 403 | In response to the auth service timeout |
missing_authorization | Missing API Key header | 401 | allowAPIKeyOnly == true
Unless allowInvalidAuthorization |
invalid_authorization | Invalid Authorization header | 401 | allowOAuthOnly == true
Authorization-header not in HTTP |
gateway_timeout | Copy service message | 504 | In response to the auth timeout |
default | 500 | All other not categorized |
bauth plug-in
This section describes the error codes and messages that are returned by the
bauth
plug-in with descriptions of possible causes.
Error | Message | HTTP status | Possible Causes |
---|---|---|---|
missing_authorization | Missing API Key header | 401 | allowAPIKeyOnly == true
Unless allowInvalidAuthorization |
invalid_authorization | Invalid Authorization header | 401 | allowOAuthOnly == true
Authorization-header not in HTTP |
gateway_timeout | Copy service message | 504 | In response to the auth timeout |
default | 500 | All other not categorized |
cloud-foundry-route-service plug-in
This section describes the error codes and messages that are returned by the
cloud-foundry-route-service
plug-in with descriptions of possible causes.
No errors generated.
cors plug-in
This section describes the error codes and messages that are returned by the
cors
plug-in with descriptions of possible causes.
No errors generated.
eurekaclient plug-in
This section describes the error codes and messages that are returned by the
eurekaclient
plug-in with descriptions of possible causes.
The eurekaclient plug-in throws a few console errors only, including a stack trace error on failed start and a warning about the target endpoint from Eureka not found.
extauth plug-in
This section describes the error codes and messages that are returned by the
extauth
plug-in with descriptions of possible causes.
Error | Message | HTTP status | Possible Causes |
---|---|---|---|
invalid_request | Invalid Request | 400 | allowNoAuthorization == false
No Authorization header in the HTTP request allowOAuthOnly == true |
invalid_request | API Key Verification URL not configured | 400 | Verification API service not in header. |
access_denied | Copy service message | 403 | In response to the auth service timeout |
missing_authorization | Missing API Key header | 401 | allowAPIKeyOnly == true
Unless allowInvalidAuthorization |
invalid_authorization | Invalid Authorization header | 401 | allowOAuthOnly == true
Authorization-header not in HTTP |
gateway_timeout | Copy service message | 504 | In response to the auth timeout |
default | 500 | All other not categorized |
header-uppercase plug-in
This section describes the error codes and messages that are returned by the
header-uppercase
plug-in with descriptions of possible causes.
No errors generated.
healthcheck plug-in
This section describes the error codes and messages that are returned by the
healthcheck
plug-in with descriptions of possible causes.
Error | Message | HTTP status | Possible Causes |
---|---|---|---|
503 | Too busy. No messages in HTTP or console | ||
default | Application is not running on specified application port | 500 | All other not categorized |
invalidHeader plug-in
This section describes the error codes and messages that are returned by the
invalidHeader
plug-in with descriptions of possible causes.
No errors generated.
json2xml plug-in
This section describes the error codes and messages that are returned by the
json2xml
plug-in with descriptions of possible causes.
Error | Message | HTTP status | Possible Causes |
---|---|---|---|
default | 500 | All other not categorized |
monitor plug-in
This section describes the error codes and messages that are returned by the
monitor
plug-in with descriptions of possible causes.
No errors generated.
oauth plug-in (v1)
This section describes the error codes and messages that are returned by the
oauth
plug-in (v1) with descriptions of possible causes.
Error | Message | HTTP status | Possible Causes |
---|---|---|---|
invalid_request | Invalid Authorization Header | 400 |
|
invalid_request | API Key Verification URL not configured | 400 | Verification API service not in header. |
Access_denied | Copy service message | 403 | In response to the auth service timeout |
invalid_token | Missing API Key header | 401 | allowAPIKeyOnly == true
Unless allowInvalidAuthorization is set |
invalid_token | token could not be parsed | 401 | allowAPIKeyOnly == true
Bad token delivered |
missing_authorization | Missing Authorization header | 401 | allowNoAuthorization == false
Authorization-header in HTTP allowOAuthOnly == true |
invalid_authorization | Invalid Authorization header | 401 | allowOAuthOnly == true
Authorization-header not in HTTP |
gateway_timeout | Copy service message | 504 | In response to the auth timeout |
default | 500 | All other uncategorized responses |
oauthv2 plug-in
This section describes the error codes and messages that are returned by the
oauthv2
plug-in with descriptions of possible causes.
Error | Message | HTTP status | Possible Causes |
---|---|---|---|
invalid_request | Invalid Authorization Header | 400 |
|
invalid_request | API Key Verification URL not configured | 400 | Verification API service not in header |
access_denied | Copy service message | 403 | In response to the auth service timeout |
invalid_token | Missing API Key header | 401 | allowAPIKeyOnly == true
Unless allowInvalidAuthorization is set |
invalid_token | token could not be parsed | 401 | allowAPIKeyOnly == true
Bad token delivered |
missing_authorization | Missing Authorization header | 401 | allowNoAuthorization == false
Authorization-header in HTTP allowOAuthOnly == true |
invalid_authorization | Invalid Authorization header | 401 | allowOAuthOnly == true
Authorization-header not in HTTP |
gateway_timeout | Copy service message | 504 | In response to the auth timeout |
default | 500 | All other uncategorized responses |
quota plug-in
This section describes the error codes and messages that are returned by the
quota
plug-in with descriptions of possible causes.
Defers to volos quota/apigee.
Error | Message | HTTP status | Possible Causes |
---|---|---|---|
invalid_authorization | Invalid Authorization header | 401 | allowOAuthOnly == true
Authorization-header not in HTTP |
gateway_timeout | Not authorized to call the remote proxy. Check the "key" parameter. | 404 | In response to the auth timeout |
default | 500 | All other not categorized | |
throw | uri parameter must be specified | apigeequota.js | |
throw | key parameter must be specified | apigeequota.js | |
callback | Apigee Remote Proxy not found at: ' + self.uri + '. Check your configuration | apigeequota.js | |
callback | HTTP error getting proxy version: %d. Check the "uri" parameter. | apigeequota.js | |
callback | Quotas with a fixed starting time are not supported | apigeequota.js | |
callback | Error updating remote quota: %d %s', resp.statusCode, body | apigeequota.js |
If there is an error on an entry in the product list, the product list will stop being processed.
quota-memory plug-in
This section describes the error codes and messages that are returned by the
quota-memory
plug-in with descriptions of possible causes.
Defers to volos quota/apigee.
Error | Message | HTTP status | Possible Causes |
---|---|---|---|
invalid_authorization | Invalid Authorization header | 401 | allowOAuthOnly == true
Authorization-header not in HTTP |
gateway_timeout | Not authorized to call the remote proxy. Check the "key" parameter. | 404 | In response to the auth timeout |
default | 500 | All other not categorized | |
throw | start time not allowed for month time units | quota.js. volos error on time format. | |
throw | Invalid start time %s | quota.js. volos error on time format. | |
throw | Invalid timeUnit %s | quota.js. volos error on time format. |
If there is an error on an entry in the product list, the product list will stop being processed.
spikearrest plug-in
This section describes the error codes and messages that are returned by the
spikearrest
plug-in with descriptions of possible causes.
Defers to volos spikearrest/memory.
Error | Message | HTTP status | Possible Causes |
---|---|---|---|
SpikeArrest engaged | 503 | Traffic spike. This is expected behavior. | |
throw | Invalid timeUnit %s | spikearrest.js | |
callback | key must be a string | spikearrest.js | |
throw | %s must be a number', name | spikearrest.js |
transform-uppercase plug-in
This section describes the error codes and messages that are returned by the
transform-uppercase
plug-in with descriptions of possible causes.
No errors generated.
Except as otherwise noted, the content of this page is licensed under the Creative Commons Attribution 4.0 License, and code samples are licensed under the Apache 2.0 License. For details, see the Google Developers Site Policies. Java is a registered trademark of Oracle and/or its affiliates.
Last updated 2024-12-11 UTC.