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.
| 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.