Referencia de error de Edge Microgateway

Estás viendo la documentación de Apigee Edge.
Ir a la documentación de Apigee X.
info

En este tema, se describen los errores y las advertencias que puedes encontrar con Edge Microgateway.

Errores generales de la aplicación

  • HTTP 500, failed in error handler: La mayoría de los errores tendrán este número, al igual que algunos errores que se devuelven desde los destinos. En particular, errors-middleware.js se usa en todo el módulo microgateway-core. Cuando se usa, escribe statusCodes en el registro con logger object: logger.error(err, 'failed in error handler'); de Edge Microgateway. Para los códigos recibidos de destinos entre 100 y 300, errors-middleware.js reescribe el statusCode en 500 para devolverlo al cliente.

  • HTTP 404: Es posible que veas este estado producido como un seguimiento de pila con el mensaje no match found for [API_path_name].

Errores y advertencias del módulo

Puedes usar esta información para configurar alertas que te ayuden a supervisar y administrar tu implementación de Edge Microgateway.

Los siguientes términos, que aparecen en la referencia de errores en "Controlador", indican cómo se controlan los distintos errores en Edge Microgateway.

  • assert: Por lo general, Edge Microgateway se detendrá cuando falle una evaluación de assert. Sin embargo, esto no siempre es así, ya que "asserts" arroja excepciones que se pueden detectar.
  • throws: Es posible que el sistema se detenga.
  • Devolución de llamada: El error se pasa a una devolución de llamada y el sistema puede continuar.
Tipo Mensaje Handler Notas

módulo microgateway

error Se requiere la organización declarar assert(options.org,"org is required");
error Se requiere env declarar assert(options.env,"env is required")
error El nombre de usuario es obligatorio declarar assert(options.username || options.token,"username is required");
error Se requiere una contraseña declarar assert(options.password || options.token,"password is required")
error Se requiere la organización declarar assert(options.org,"org is required");
error Se requiere env declarar assert(options.env,"env is required")
error El nombre de usuario es obligatorio declarar assert(options.username || options.token,"username is required");
error Se requiere una contraseña declarar assert(options.password || options.token,"password is required")
error Se requiere la organización declarar assert(options.org,"org is required");
error Se requiere env declarar assert(options.env,"env is required")
error Se requiere la organización declarar assert(options.org,"org is required");
error Se requiere env declarar assert(options.env,"env is required")
error El nombre de usuario es obligatorio declarar assert(options.username, 'username is required');
error Se requiere una contraseña declarar assert(options.password, 'password is required');
error Se requiere la organización declarar assert(options.org, 'org is required');
error Se requiere env declarar assert(options.env, 'env is required');
error debe tener un archivo de destino asignado declarar assert(targetFile, 'must have an assigned target file')
error debe tener una clave declarar assert(key, 'must have a key');
error debe tener un secreto declarar assert(secret, 'must have a secret');
error Se debe configurar dir declarar assert(dir, 'dir must be configured')
error La devolución de llamada debe estar presente. declarar assert(callback, 'callback must be present')
error El nombre de usuario es obligatorio declarar assert(options.username, 'username is required');
error Se requiere una contraseña declarar assert(options.password, 'password is required');
error Se requiere la organización declarar assert(options.org, 'org is required');
error Se requiere env declarar assert(options.env, 'env is required');
error Se requiere runtimeUrl declarar assert(options.runtimeUrl, 'runtimeUrl is required');
error Se requiere mgmtUrl declarar assert(options.mgmtUrl, 'mgmtUrl is required');
error El archivo es obligatorio declarar assert(options.file,"file is required")
error debe tener un objetivo declarar assert(options.target, 'must have target');
error No se configuraron los complementos declarar assert(config.edgemicro.plugins, 'plugins not configured');
error El directorio del complemento no existe: + pluginDir declarar assert(fs.existsSync(pluginDir), 'plugin dir does not exist: ' + pluginDir);
error plugin dir is not a directory: + pluginDir declarar assert(stat.isDirectory(), 'plugin dir is not a directory: ' + pluginDir);
error error al leer el directorio del complemento: + pluginDir declarar assert(dirs, 'error reading plugin dir: ' + pluginDir);
error Debe tener un token. declarar assert(token, 'must have a token');
error configpath no puede estar vacío declarar assert(config, 'configpath can't be empty');
error Debe tener EDGEMICRO_KEY declarar assert(key, 'must have EDGEMICRO_KEY');
error Debe tener EDGEMICRO_SECRET declarar assert(secret, 'must have EDGEMICRO_SECRET');
error La configuración no existe. arroja relacionado con el archivo YAML
error Parece que edgemicro ya se está ejecutando. console.error Se intentó reemplazar un archivo .sock
error No se pudo verificar si hubo cambios en la configuración. Se volverá a intentar después de console.error Problema con la comunicación perimetral
error Si el servidor no se está ejecutando, es posible que se deba a un cierre incorrecto del inicio anterior. console.error
error Falta %s. Ejecuta console.error Falta (.*). Ejecuta
error No se pudo volver a cargar edgemicro console.error nivel de comando
error No se pudo detener edgemicro console.error Nivel de comando
error "Intenta quitar " + ipcPath + " y vuelve a empezar" console.error
error "La configuración de caché" + caché + "no existe. Se cerrará el programa". console.error
error No se pudo escribir el archivo de configuración: console.error La configuración fallará
error No se descargó el archivo de configuración: console.error La configuración fallará
error No se pudo iniciar el micrófono de borde console.error No debería estar en ejecución
error edgemicro no se está ejecutando. console.error Proceso de verificación que no debería aparecer en la lista
error Se requiere env console.error Variables de entorno necesarias para ejecutar
error error - editing apiproxy Callout.xml console.error Acceso a archivos
error error - editing apiproxy default.xml console.error Acceso a archivos
error Verificación de errores del certificado. Se está instalando un certificado nuevo. console.error No se puede usar la clave pública
error Se produjo un error al recuperar la región de la organización. console.error key-gen.js, cert-lib.js y private.js
error Se produjo un error al subir las credenciales console.error No se puede sincronizar la clave pública con Edge
error con errores console.error key-gen.js
error No se pudo inicializar el archivo de configpath %s console.error No se carga la configuración
error Respuesta no válida de la API de regiones console.error key-gen.js, cert-lib.js y private.js
error la clave es obligatoria console.error Parámetro
error Se requiere la organización console.error Parámetro
error El puerto no está disponible. console.error Parámetro
error El secreto es obligatorio console.error Parámetro
error No se admite el protocolo de URL: console.error La información de configuración indica un protocolo de Internet que no está dentro del alcance de Edge Microgateway
error Verificación del caso negativo de Analytics: FALLA console.error Posible falla o bloqueo
error verificación de estadísticas con carga útil: FALLÓ console.error Posible falla o bloqueo
error verifying bootstrap url availability:FAIL console.error Posible falla o bloqueo
error verifying jwt_public_key availability: FAIL console.error Posible falla o bloqueo
error verificando la disponibilidad de los productos: FALLÓ console.error Posible falla o bloqueo
error Verificación de la cuota con productos configurados: FALLÓ console.error Posible falla o bloqueo
advertencia No se pudo recuperar la configuración de la puerta de enlace. Se continuará con la copia almacenada en caché. console.error
advertencia El KVM ya existe en tu organización console.log
advertencia ya se implementó console.log
advertencia No se encontró el complemento secuenciado: console.warn
advertencia pluginDir %s no existe console.log pluginDir (.*) no existe

módulo microgateway-core

error No se inicializó la configuración declarar assert(config, 'config not initialized')
error debe tener una configuración declarar assert(config, ' must have a config')
error Configuración obligatoria declarar assert(config, 'must have config')
error La configuración debe tener un UID. declarar assert(config.uid, 'config must have uid');
error Debe tener config.edgemicro.logging en la configuración declarar assert(logConfig, 'must have config.edgemicro.logging in config');
error Debe tener un método de solicitud declarar assert(httpLibrary.request, 'must have request method');
error Debe tener el complemento cargado en la memoria. declarar assert(options.plugin, "must have plugin loaded in memory");
error init debe ser una función declarar assert(_.isFunction(options.plugin.init), 'init must be a function');
error Debe tener el nombre del complemento declarar assert(options.pluginName, "must have plugin name");
error Se ignoran el nombre y los controladores de complementos no válidos. declarar assert(_.isObject(middleware), 'ignoring invalid plugin handlers ' + name);
error Las opciones deben contener la configuración. declarar assert(config, 'options must contain config')
error El complemento debe tener un nombre. declarar assert(name,"plugin must have a name")
error El nombre debe ser una cadena. declarar assert(_.isString(name),"name must be a string");
error El complemento debe ser una función. declarar assert(_.isFunction(plugin),"plugin must be a function(config,logger,stats){return {onresponse:function(req,res,data,next){}}}");
error debe tener una clave declarar assert(key, 'must have a key');
error debe tener un secreto declarar assert(secret, 'must have a secret');
error debe tener un directorio de configuración de la fuente declarar assert(source, 'must have a source config directory');
error Se produjo un error al cargar el complemento console.error No se cargó el complemento
error falló en el controlador de errores callback Función server.on() de HTTP
error La longitud del encabezado es mayor que el tamaño permitido. Error de HTTP No ejecuta el complemento
error La respuesta finalizó antes de que se pudiera realizar el trabajo. logger.error El complemento de destino no se ejecuta
error El controlador arrojó una excepción callback Error de captura del complemento (catch)
error Se produjo un error al iniciar el micro de Edge callback Edge Microgateway no se inicia
error El complemento debe ser una función. arroja
advertencia console.error advierte Escritura de registros
advertencia Error de targetRequest invocar el manejo de errores de destino Error del cliente HTTP en la conexión con el destino
advertencia Error de targetResponse invocar el manejo de errores de destino Error del servidor de destino HTTP en la conexión con el destino, como se ve en el cliente

microgateway-config module

error allow_message declarar assert(+config.quota.allow > 0, allow_message);
error La configuración no existe. arroja Archivo de configuración .yaml
error La configuración está vacía. arroja Archivo de configuración .yaml
error config no es un archivo arroja Archivo de configuración .yaml
error No se definió la configuración declarar assert(config, 'config is not defined');
error config.analytics.batchSize no es válido declarar assert(+config.analytics.batchSize > 0, 'config.analytics.batchSize is invalid');
error config.analytics.batchSize no es un número declarar assert(typeof config.analytics.batchSize === 'number', 'config.analytics.batchSize is not a number');
error config.analytics.bufferSize no es válido declarar assert(+config.analytics.bufferSize > 0, 'config.analytics.bufferSize is invalid');
error config.analytics.bufferSize no es un número declarar assert(typeof config.analytics.bufferSize === 'number', 'config.analytics.bufferSize is not a number');
error config.analytics.flushInterval no es válido declarar assert(+config.analytics.flushInterval > 0, 'config.analytics.flushInterval is invalid');
error config.analytics.flushInterval no es un número declarar assert(typeof config.analytics.flushInterval === 'number', 'config.analytics.flushInterval is not a number');
error config.analytics.proxy no es "dummy" declarar assert(config.analytics.proxy === 'dummy', 'config.analytics.proxy is not "dummy"');
error No se definió config.analytics.proxy declarar assert(config.analytics.proxy, 'config.analytics.proxy is not defined');
error config.analytics.proxy_revision no es un número declarar assert(typeof config.analytics.proxy_revision === 'number', 'config.analytics.proxy_revision is not a number');
error No se define config.analytics.proxy_revision declarar assert(config.analytics.proxy_revision, 'config.analytics.proxy_revision is not defined');
error config.analytics.source no es "microgateway" declarar assert(config.analytics.source === 'microgateway', 'config.analytics.source is not "microgateway"');
error No se definió config.analytics.source declarar assert(config.analytics.source, 'config.analytics.source is not defined');
error config.analytics.uri no es una cadena declarar assert(typeof config.analytics.uri === 'string', 'config.analytics.uri is not a string');
error No se definió config.analytics.uri declarar assert(config.analytics.uri, 'config.analytics.uri is not defined');
error No se definió config.apikeys.public_key declarar assert(typeof config.apikeys.public_key === 'string', 'config.apikeys.public_key is not defined');
error No se define config.edge_config declarar assert(config.edge_config, 'config.edge_config is not defined');
error No se definió config.edge_config.bootstrap declarar assert(config.edge_config.bootstrap, 'config.edge_config.bootstrap is not defined');
error No se definió config.edge_config.jwt_public_key declarar assert(config.edge_config.jwt_public_key, 'config.edge_config.jwt_public_key is not defined');
error Se debe definir config.edge_config.proxy si se define config.edge_config.proxy_tunnel declarar 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 no es un valor booleano declarar assert(typeof config.edge_config.proxy_tunnel === 'boolean', 'config.edge_config.proxy_tunnel is not a boolean');
error config.edge_config.refresh_interval no es un número declarar assert(typeof config.edge_config.refresh_interval === 'number', 'config.edge_config.refresh_interval is not a number');
error config.edge_config.refresh_interval es demasiado pequeño (mínimo 1 h) declarar assert(config.edge_config.refresh_interval >= 3600000, 'config.edge_config.refresh_interval is too small (min 1h)');
error config.edge_config.retry_interval no es un número declarar assert(typeof config.edge_config.retry_interval === 'number', 'config.edge_config.retry_interval is not a number');
error config.edge_config.retry_interval es demasiado pequeño (mínimo 5 s) declarar assert(config.edge_config.retry_interval >= 5000, 'config.edge_config.retry_interval is too small (min 5s)');
error No se definió config.edgemicro declarar assert(config.edgemicro, 'config.edgemicro is not defined');
error No se definió config.edgemicro.logging declarar assert(config.edgemicro.logging, 'config.edgemicro.logging is not defined');
error No se definió config.edgemicro.logging.dir declarar if (!config.edgemicro.logging.to_console) assert(config.edgemicro.logging.dir, 'config.edgemicro.logging.dir is not defined');
error No se define config.edgemicro.logging.level declarar assert(config.edgemicro.logging.level, 'config.edgemicro.logging.level is not defined');
error config.edgemicro.max_connections no es un número declarar assert(typeof config.edgemicro.max_connections === 'number', 'config.edgemicro.max_connections is not a number');
error No se definió config.edgemicro.max_connections declarar assert(config.edgemicro.max_connections, 'config.edgemicro.max_connections is not defined');
error config.edgemicro.plugins.sequence no es un array declarar assert(Array.isArray(config.edgemicro.plugins.sequence), 'config.edgemicro.plugins.sequence is not an array');
error No se definió config.edgemicro.port declarar assert(config.edgemicro.port, 'config.edgemicro.port is not defined');
error No se definió config.oauth.allowInvalidAuthorization declarar assert(typeof config.oauth.allowInvalidAuthorization === 'boolean', 'config.oauth.allowInvalidAuthorization is not defined');
error No se definió config.oauth.allowNoAuthorization declarar assert(typeof config.oauth.allowNoAuthorization === 'boolean', 'config.oauth.allowNoAuthorization is not defined');
error No se definió config.oauth.public_key declarar assert(typeof config.oauth.public_key === 'string', 'config.oauth.public_key is not defined');
error No se definió config.oauthv2.public_key declarar assert(typeof config.oauthv2.public_key === 'string', 'config.oauthv2.public_key is not defined');
error No se definió config.proxies declarar assert(config.proxies, 'config.proxies is not defined');
error No se definió config.proxy[ + index + ].base_path declarar assert(proxy.base_path, 'config.proxy[' + index + '].base_path is not defined');
error config.proxy[ + index + ].max_connections no es un número declarar assert(typeof proxy.max_connections === 'number', 'config.proxy[' + index + '].max_connections is not a number');
error No se define config.proxy[ + index + ].max_connections declarar assert(proxy.max_connections, 'config.proxy[' + index + '].max_connections is not defined');
error No se define config.proxy[ + index + ].name declarar assert(proxy.name, 'config.proxy[' + index + '].name is not defined');
error No se define config.proxy[ + index + ].proxy_name declarar assert(proxy.target_name, 'config.proxy[' + index + '].proxy_name is not defined');
error config.proxy[ + index + ].revision no está definido declarar assert(proxy.revision, 'config.proxy[' + index + '].revision is not defined');
error No se define config.proxy[ + index + ].url declarar assert(proxy.url, 'config.proxy[' + index + '].url is not defined');
error config.quota.allow no es un número declarar assert(typeof config.quota.allow === 'number', 'config.quota.allow is not a number');
error No se definió config.quota.allow declarar assert(config.quota.allow, 'config.quota.allow is not defined');
error config.quota.interval no es un número declarar assert(typeof config.quota.interval === 'number', 'config.quota.interval is not a number');
error No se definió config.quota.interval declarar assert(config.quota.interval, 'config.quota.interval is not defined');
error No se define config.spikearrest declarar assert(config.spikearrest, 'config.spikearrest is not defined');
error config.spikearrest.allow no es válido declarar assert(+config.spikearrest.allow > 0, 'config.spikearrest.allow is invalid');
error config.spikearrest.allow no es un número declarar assert(typeof config.spikearrest.allow === 'number', 'config.spikearrest.allow is not a number');
error No se define config.spikearrest.allow declarar assert(config.spikearrest.allow, 'config.spikearrest.allow is not defined');
error config.spikearrest.bufferSize no es válido declarar assert(+config.spikearrest.bufferSize > 0, 'config.spikearrest.bufferSize is invalid');
error config.spikearrest.bufferSize no es un número declarar assert(typeof config.spikearrest.bufferSize === 'number', 'config.spikearrest.bufferSize is not a number');
error No se define config.spikearrest.timeUnit declarar assert(config.spikearrest.timeUnit, 'config.spikearrest.timeUnit is not defined');
error ERROR CRÍTICO: Se produjo un error al analizar la lista de productos descargada callback
error ERROR CRÍTICO: Se produjo un error al analizar la lista de proxies descargada callback
error SE DETECTÓ UN ERROR DE CONFIGURACIÓN INCORRECTA DEL PRODUCTO console.error Seguido de console.warn('using old cached configuration');
error Se produjo un error al leer la configuración de arroja Archivo de configuración .yaml
error Se produjo un error al guardar la configuración en callback Archivo de configuración .yaml
error fatal: cached config not available, unable to continue callback
error interval_message declarar assert(+config.quota.interval > 0, interval_message);
error Protocolo no válido para config.edge_config.proxy (se esperaba http: o https:: + proxy_url.protocol) declarar assert(proxy_url.protocol === 'http:' || proxy_url.protocol === 'https:', 'invalid protocol for config.edge_config.proxy (expected http: or https:): ' + proxy_url.protocol);
error Host de proxy no válido para config.edge_config.proxy declarar assert(proxy_url.hostname, 'invalid proxy host for config.edge_config.proxy: ' + proxy_url.hostname);
error Parece que el micro de borde no se configuró. Consulta la guía del administrador. callback Resultado: No se pudo cargar la configuración
error Falta la clave declarar assert(keys.key, 'key is missing');
error debe tener configDir declarar assert(configDir, 'must have configDir')
error Opciones obligatorias declarar assert(options, 'must have options');
error debe tener una fuente declarar assert(source, 'must have source')
error Debe tener una fuente desde la cual cargar declarar assert(options.source, 'must have source to load from')
error Debe tener targetFile declarar assert(fileName, 'must have targetFile')
error Las opciones no pueden ser nulas. declarar assert(options, 'options cannot be null');
error options.keys no puede ser nulo declarar assert(options.keys, 'options.keys cannot be null');
error port_message declarar assert(+config.edgemicro.port < 65536, port_message);
error products debe ser un array declarar assert(Array.isArray(products), 'products should be an array');
error "proxies for product " + product + " should be an array" declarar assert(Array.isArray(product.proxies), 'proxies for product ' + product + ' should be an array');
error Falta el secreto declarar assert(keys.secret, 'secret is missing');
error No se estableció el objetivo. declarar assert(target, 'target is not set');
advertencia Se produjo un error al descargar la configuración. Verifica la configuración de arranque. console.warn
advertencia No se pudo descargar jwt_public_key console.warn
advertencia Las claves JWK no están habilitadas console.warn
advertencia message, 'download from', url, 'returned' console.warn Buscar: (.*)\sdownload from\s(.*)\sreturned
advertencia No se encontraron microproductos de borde en la respuesta. console.warn
advertencia No se encontraron microproxies de borde en la organización. console.warn
advertencia No se encontraron microproxies de borde en la respuesta console.warn
advertencia No se encontraron productos en la organización console.warn
advertencia No se encontraron productos en la respuesta console.warn
advertencia Se usa la configuración anterior almacenada en caché console.warn

módulo microgateway-plugins

error La configuración no existe. arroja Relacionado con el archivo YAML
error apikey Respuesta HTTP Fallas en el complemento de apiky
error bauth Respuesta HTTP Errores en el complemento de bauth
error extauth Respuesta HTTP Fallas en el complemento de extauth
error OAuth Respuesta HTTP Fallas en el complemento de OAuth
advertencia Se produjo un error al procesar las estadísticas de Apigee. Permitir que continúe el procesamiento de la solicitud logger.error
advertencia ignorar err console.warn Complementos de apikeys, oauth y oauthv2
advertencia Se produjo un error al analizar el JWT: console.warn
advertencia El objeto de respuesta de OAuth no tiene setHeader console.warn El error del parámetro oauth indica que no se informarán algunos errores.
advertencia El entorno de ejecución no proporciona el objeto de respuesta de OAuth console.warn Error en el parámetro de OAuth
advertencia El objeto de estadísticas de OAuth no se proporciona en el tiempo de ejecución console.warn Error en el parámetro de OAuth

Módulo apigeetool-node

error No se pudo borrar la caché con el código de estado %d', res.statusCode callback Se arroja en deletecache.js. Es el código de estado de Apigee Edge. Pasa a la devolución de llamada un error de seguimiento de pila con este mensaje: done(new Error(errMsg));
error No se pudo borrar el producto con el código de estado %d', res.statusCode callback Se arroja en deleteproduct.js. Es el código de estado de Apigee Edge. Pasa a la devolución de llamada un error de seguimiento de pila con este mensaje: done(new Error(errMsg));
error Se deben especificar la organización, la API y la revisión. callback Se arroja en fetchproxy.js. Error de configuración.
error Se recibió el error %d cuando se recuperó el proxy: %j callback Se arroja en fetchproxy.js. Código de estado distinto de 200.
error No se pudo crear la app con el código de estado %d callback Se arroja en createapp.js. Pasa todos los errores a las devoluciones de llamada como errores de seguimiento de pila. No imprime nada en la consola ni genera entradas de registro.
error command + ' falló con el código de estado %d callback Se arroja en command-utils.js. Para cualquier comando que se analice y pase a este módulo, cualquier código que no sea 200 o 201 generará un mensaje de error. Da formato a este mensaje, pero no lo imprime. Pasa un error de seguimiento de pila con el mensaje a las devoluciones de llamada.
error Se recibió el error %d al recuperar el flujo compartido: %s callback Se arroja en fetchsharedflow.js. Para cualquier estado HTTP que no sea 200. Si se ejecuta correctamente, pero no puede escribir un archivo, escribe en la consola:
Failed to write file
Error text: [stack_trace_error]
error No se pudo crear KeySecret con el código de estado %d', res.statusCode callback Se arroja en createappkey.js. Códigos de estado HTTP de Apigee Edge que no son 200 ni 201.
error No se pudo crear la caché con el código de estado %d", res.statusCode callback Se arroja en createcache.js. Para los códigos de estado HTTP de Apigee Edge que no son 200 o 201.
error No se pudo crear el producto con el código de estado %d', res.statusCode callback Se arroja en createproduct.js. Códigos de estado HTTP de Apigee Edge que no son 201. Si el estado HTTP es 201, pero la respuesta incluye un error en formato JSON, este se reenvía a la devolución de llamada.
error No se pudo borrar la app con el código de estado %d', res.statusCode callback Se arroja en deleteapp.js. Códigos de estado HTTP de Apigee Edge que no son 200. Si el estado HTTP es 200, pero la respuesta incluye un error en formato JSON, este se reenvía a la devolución de llamada.
error Create Developer failed with status code %d', res.statusCode callback Se arroja en createdeveloper.js. Códigos de estado HTTP de Apigee Edge que no son 201. Si el estado HTTP es 201, pero la respuesta incluye un error en formato JSON, este se reenvía a la devolución de llamada.
error No se pudo borrar el desarrollador con el código de estado %d', res.statusCode callback Se arroja en deletedeveloper.js. Códigos de estado HTTP de Apigee Edge que no son 200. Si el estado HTTP es 200, pero la respuesta incluye un error en formato JSON, este se reenvía a la devolución de llamada.

Errores de complementos

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.