Recibo el error E429
npm ci
(desde hoy al menos)npm ci
devuelve el error E429 ( demasiadas solicitudes ) y no completa la instalación de los paquetesnpm ci
Lo mismo aquí, pero con npm -g install @vue/cli
.
npm WARN deprecated [email protected]: request has been deprecated, see https://github.com/request/request/issues/3142
npm ERR! code E429
npm ERR! 429 Too Many Requests - GET https://registry.npmjs.org/lowdb/-/lowdb-1.0.0.tgz
Tener el mismo problema en nuestras tuberías. Las respuestas varían entre 403 Forbidden
y 420 Too Many Requests
Vemos esto en cualquiera de nuestras tareas de CI que se ejecutan en AWS
Step 8/11 : RUN npm ci
---> Running in 87051ac87a51
npm ERR! code E429
npm ERR! 429 Too Many Requests - GET https://registry.npmjs.org/@types/xxhashjs/-/xxhashjs-0.2.1.tgz
npm ERR! A complete log of this run can be found in:
npm ERR! /root/.npm/_logs/2020-02-17T11_49_35_151Z-debug.log
The command '/bin/sh -c npm ci' returned a non-zero code: 1
ERROR: Job failed: exit code 1
También para mí en la construcción de bambú:
error 17-feb-2020 12:49:46 npm ERR! code E429
error 17-feb-2020 12:49:46 npm ERR! 429 Too Many Requests - GET https://registry.npmjs.org/@snyk/configstore/-/configstore-3.2.0-rc1.tgz
Infraestructura centralizada: ~ (
(esperando la autopsia, pero sin contener la respiración ...)
Sería útil tener una lista de espejos de registro públicos (verificados). Encontré algunos, pero no puedo confiar en ellos.
Lo mismo, tanto localmente como en Circle CI
También viendo lo mismo usando Circle CI y localmente
npm ERR! code E429
npm ERR! 429 Too Many Requests - GET https://registry.npmjs.org/camelcase/-/camelcase-2.1.1.tgz
Veo errores como ...
"El propietario de este sitio web (registro.npmjs.org) le ha prohibido temporalmente el acceso a este sitio web"
y
"Tiene una tasa limitada"
¿Supongo que todo esto está relacionado?
También tenemos este problema al implementar en Heroku.
npm ERR! code E429
npm ERR! 429 Too Many Requests - GET https://registry.npmjs.org/strip-indent/-/strip-indent-1.0.1.tgz
Tener los mismos errores al implementar en heroku.
lo mismo aquí con AWS CodeBuild y npm i -g aws-cdk
28 | npm ERR! 429 Demasiadas solicitudes: OBTENGA https://registry.npmjs.org/aws-cdk
problema general del servidor?
Yo tambien tengo el mismo problema
npm ERR! código E429
npm ERR! 429 Demasiadas solicitudes: OBTENGA https://registry.npmjs.org/silent-error
Lo mismo aquí al instalar paquetes localmente.
Suecia.
`` npm ERR! código E429
npm ERR! 429 Demasiadas solicitudes: OBTENGA https://registry.npmjs.org/lodash
Sí, también veo esto en Travis por npm audit
:
npm ERR! audit Your configured registry (https://registry.npmjs.org/) may not support audit requests, or the audit endpoint may be temporarily unavailable.
npm ERR! audit The server said:
Access denied | registry.npmjs.org used Cloudflare to restrict access
You are being rate limited
The owner of this website (registry.npmjs.org) has banned you temporarily from accessing this website.
Lo mismo sucede aquí. Obteniendo el error al hacer npm update
17-Feb-2020 11:47:48 npm ERR! code E429
17-Feb-2020 11:47:48 npm ERR! 429 Too Many Requests - GET https://registry.npmjs.org/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.8.3.tgz
El mismo problema aquí. Estamos usando bambú ci. Instalación propia.
El archivo es accesible desde el propio servidor:
`` `$ wget https://registry.npmjs.org/@babel/plugin -transform-block-scoping / - / plugin-transform-block-scoping-7.8.3.tgz
--2020-02-17 11: 59: 28-- https://registry.npmjs.org/@babel/plugin -transform-block-scoping / - / plugin-transform-block-scoping-7.8.3.tgz
Resolviendo registro.npmjs.org (registro.npmjs.org) ... 104.16.17.35, 104.16.24.35, 104.16.26.35, ...
Conectando a registry.npmjs.org (registry.npmjs.org) | 104.16.17.35 |: 443 ... conectado.
Solicitud HTTP enviada, esperando respuesta ... 200 OK
Longitud: 6735 (6,6 K) [aplicación / secuencia de octetos]
Guardar en: 'plugin-transform-block-scoping-7.8.3.tgz'
plugin-transform-block-scoping-7.8.3.tgz 100% [================================== ================================================ ==========================================>] 6.58K - .-KB / s en 0s
2020-02-17 11:59:28 (95.5 MB / s) - 'plugin-transform-block-scoping-7.8.3.tgz' guardado [6735/6735] ``
Frente a este problema también, ¿es esto algo global o quizás relacionado con la región? Tuvimos algo similar el año pasado en Alemania.
Lo mismo aquí se ejecuta en Gitlab CI
Lo mismo aquí en Holanda. (AWS Codebuild de Irlanda)
Rusia a
Estambul aquí
Esto parece ser un problema relacionado con Cloudflare para el sitio registry.npmjs.org.
obtuve la siguiente respuesta html en la actualización:
<!DOCTYPE html>
npm ERR! <!--[if lt IE 7]> <html class="no-js ie6 oldie" lang="en-US"> <![endif]-->
npm ERR! <!--[if IE 7]> <html class="no-js ie7 oldie" lang="en-US"> <![endif]-->
npm ERR! <!--[if IE 8]> <html class="no-js ie8 oldie" lang="en-US"> <![endif]-->
npm ERR! <!--[if gt IE 8]><!--> <html class="no-js" lang="en-US"> <!--<![endif]-->
npm ERR! <head>
npm ERR! <title>Access denied | registry.npmjs.org used Cloudflare to restrict access</title>
npm ERR! <meta charset="UTF-8" />
npm ERR! <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
npm ERR! <meta http-equiv="X-UA-Compatible" content="IE=Edge,chrome=1" />
npm ERR! <meta name="robots" content="noindex, nofollow" />
npm ERR! <meta name="viewport" content="width=device-width,initial-scale=1,maximum-scale=1" />
npm ERR! <link rel="stylesheet" id="cf_styles-css" href="/cdn-cgi/styles/cf.errors.css" type="text/css" media="screen,projection" />
npm ERR! <!--[if lt IE 9]><link rel="stylesheet" id='cf_styles-ie-css' href="/cdn-cgi/styles/cf.errors.ie.css" type="text/css" media="screen,projection" /><![endif]-->
npm ERR! <style type="text/css">body{margin:0;padding:0}</style>
npm ERR!
npm ERR!
npm ERR! <!--[if gte IE 10]><!--><script type="text/javascript" src="/cdn-cgi/scripts/zepto.min.js"></script><!--<![endif]-->
npm ERR! <!--[if gte IE 10]><!--><script type="text/javascript" src="/cdn-cgi/scripts/cf.common.js"></script><!--<![endif]-->
npm ERR!
npm ERR!
npm ERR!
npm ERR! </head>
npm ERR! <body>
npm ERR! <div id="cf-wrapper">
npm ERR! <div class="cf-alert cf-alert-error cf-cookie-error" id="cookie-alert" data-translate="enable_cookies">Please enable cookies.</div>
npm ERR! <div id="cf-error-details" class="cf-error-details-wrapper">
npm ERR! <div class="cf-wrapper cf-header cf-error-overview">
npm ERR! <h1>
npm ERR! <span class="cf-error-type" data-translate="error">Error</span>
npm ERR! <span class="cf-error-code">1015</span>
npm ERR! <small class="heading-ray-id">Ray ID: REDACTED • 2020-02-17 11:26:27 UTC</small>
npm ERR! </h1>
npm ERR! <h2 class="cf-subheadline">You are being rate limited</h2>
npm ERR! </div><!-- /.header -->
npm ERR!
npm ERR! <section></section><!-- spacer -->
npm ERR!
npm ERR! <div class="cf-section cf-wrapper">
npm ERR! <div class="cf-columns two">
npm ERR! <div class="cf-column">
npm ERR! <h2 data-translate="what_happened">What happened?</h2>
npm ERR! <p>The owner of this website (registry.npmjs.org) has banned you temporarily from accessing this website.</p>
npm ERR! </div>
npm ERR!
npm ERR!
npm ERR! </div>
npm ERR! </div><!-- /.section -->
npm ERR!
npm ERR! <div class="cf-error-footer cf-wrapper">
npm ERR! <p>
npm ERR! <span class="cf-footer-item">Cloudflare Ray ID: <strong>REDACTED</strong></span>
npm ERR! <span class="cf-footer-separator">•</span>
npm ERR! <span class="cf-footer-item"><span>Your IP</span>: REDACTED</span>
npm ERR! <span class="cf-footer-separator">•</span>
npm ERR! <span class="cf-footer-item"><span>Performance & security by</span> <a href="https://www.cloudflare.com/5xx-error-landing?utm_source=error_footer" id="brand_link" target="_blank">Cloudflare</a></span>
npm ERR!
npm ERR! </p>
npm ERR! </div><!-- /.error-footer -->
npm ERR!
npm ERR!
npm ERR! </div><!-- /#cf-error-details -->
npm ERR! </div><!-- /#cf-wrapper -->
npm ERR!
npm ERR! <script type="text/javascript">
npm ERR! window._cf_translation = {};
npm ERR!
npm ERR!
npm ERR! </script>
npm ERR!
npm ERR! </body>
npm ERR! </html>
El mismo problema ocurre con AWS Codebuild us-east-1. Se rompió localmente hasta hace unos 30 minutos, pero volvió a funcionar ahora (localmente desde Irlanda)
Esto parece ser un problema relacionado con Cloudflare para el sitio registry.npmjs.org.
¿Hay algún espejo que no use cloudflare?
¡El mismo problema! Las canalizaciones de compilación están fallando :(
Igual: npm ERR! code E429
Eso es. Internet está hecho. Adiós a todos.
Voy a almorzar y espero que esto se solucione cuando regrese en menos de una hora.
Podemos confirmar prácticamente que se trata de un problema de npm, sin embargo, en su página de estado, todo aparece como operativo. ¿Cuál es entonces el propósito de la página de estado de npm?
El mismo problema. AWS desde us-east-1
npm ERR! code E429
npm ERR! 429 Too Many Requests - GET https://registry.npmjs.org/archy/-/archy-1.0.0.tgz
Me acabo de comunicar en Twitter, 🤞 que tendremos información rápidamente.
Mismo...
npm ERR! code E429
npm ERR! 429 Too Many Requests - GET https://registry.npmjs.org/react-scripts/-/react-scripts-3.4.0.tgz
mismo. Paquetes diferentes, pero siguen recibiendo 429 solicitudes de más haciendo npm install y npm ci, desde el día de hoy
:(
Estamos todos abajo desde la mañana. NPM está roto. Dublín aquí
Funciona bien para mí ahora. 5 $ / paquete. Me pm.
Funciona bien para mí ahora. 5 $ / paquete. Me pm.
tan barato
En Corea del Sur, también me enfrento a este problema.
$ npm install --save-dev typescript
npm ERR! code E429
npm ERR! 429 Too Many Requests: [email protected]
Cada paquete de NPM simplemente requiere demasiado tiempo para instalarse.
¿Qué pasó con la NPM?
Por suerte, solo tenemos que sentarnos y esperar
Imagínese si todos fuéramos obreros de la construcción y de repente todos los martillos dejaran de funcionar en el mundo: pensando:
¿Qué tal si usas el espejo yarnpkg para tus construcciones?
Todo está bien http://status.npmjs.org/
Todo está bien http://status.npmjs.org/
De hecho 😄
Esta discusión no envejeció bien
Puede usar: https://github.com/open-services/open-registry
# npm
npm config set registry https://npm.open-registry.dev
# yarn
yarn config set registry https://npm.open-registry.dev
Tener el mismo problema en varios entornos (travis, local, servidor).
NPM: espejo casi perfecto
NPM: No actuar los lunes
NPM: No hay problema el lunes
El mismo problema dentro de los corredores de Gitlab
El mismo problema cuando probé una compilación en heroku. Código de error CF 1015.
El propietario de este sitio web (registro.npmjs.org) le ha prohibido temporalmente el acceso a este sitio web.
También recibí este error cuando ejecuto el comando npm install: " Acceso denegado | registro.npmjs.org usó Cloudflare para restringir el acceso. Tiene una tasa limitada. El propietario de este sitio web (registro.npmjs.org) lo ha prohibido temporalmente de acceder a este sitio web. ".
Soy de Cebu, Filipinas. ¿Es este problema de CloudFlare o el NPM?
El propietario de este sitio web (registro.npmjs.org) le ha prohibido temporalmente el acceso a este sitio web.
Hola amigos, por muy divertido que sea esto, permítanos restringirlo a cosas realmente útiles para que la gente pueda empezar a trabajar de nuevo.
Parece que este problema está bastante extendido, en lugar de que todos publiquen "esto me está sucediendo en X", ¿qué tal si nos mantenemos firmes hasta escuchar algo de NPM? O podemos hacer +1 en un comentario si se ve afectado.
NPM: no es un administrador de paquetes
También estamos haciendo salidas aquí en Suecia 👌 🙆♂
Parece que este problema está bastante extendido, en lugar de que todos publiquen "esto me está sucediendo en X", ¿qué tal si nos mantenemos firmes hasta escuchar algo de NPM? O podemos hacer +1 en un comentario si se ve afectado.
Nah, memes y comentarios inútiles para la victoria
Tener el mismo problema en la compilación de AWS
¿Significa esto que podemos irnos para el segundo almuerzo?
Tener el mismo problema en CircleCi Builds
¡Tener el mismo problema con las acciones de Github!
Es hora de instalar https://github.com/verdaccio/verdaccio/
Wow, Memes en comentarios XD
Chicos, es increíble estar todos en el mismo barco y compartir un poco de amor mientras nos estresamos, pero ... ¿podríamos dejar de decirnos "yo también"?
Los memes siempre son bienvenidos, ¡por cierto!
Ésta es la consecuencia de la dependencia excesiva de la computadora de otra persona . @phaberest eres un insensato y yo también: -}
¡mismo!
NPM me acaba de decir que podemos tomarnos el resto del día libre, gracias amigos.
Mismo problema aquí
¿Esto todavía se aplica?
Mismo
Sede de NPM ahora mismo:
Asumo la oficina de npmjs ahora mismo pic.twitter.com/wZy0Bo3PM8
- Nick Hammond (@thehappypenguin) 17 de febrero de 2020
El problema ahora está solucionado
https://status.npmjs.org/ es hasta verde 💃
NPM:
Los rumores dicen que los paquetes de NPM se han infectado con un coronavirus
Creo que es un buen ejemplo de por qué se recomienda encarecidamente instalar su propio registro / proxy npm para proteger problemas similares cuando no podrá implementar su aplicación debido a una interrupción del registro NPM
Cuando está esperando mientras NPM estará disponible
NPM quiere que nos tomemos un descanso
Escribir "igual" es una calificación baja.
Lo mismo aquí en Casio FX-991ESPLUS
NPM: ¡Ahora, publique memes!
Lo mismo aquí desde China.
El mismo problema al ejecutar npm install en nuestro servidor de compilación (Teamcity) y localmente.
Estoy comenzando un curso de Python ahora mismo.
Lo que me encanta de esto es que este problema no me impide trabajar. Sin embargo, la gente que publica memes aquí me detiene. Me encanta: D
Yo miento leche con chocolate
Hilo relacionado ... https://github.com/nextcloud/maps/issues/300
Porque soy vago, vincularé mi publicación desde allí ... https://github.com/nextcloud/maps/issues/300#issuecomment -586973011
sí, puedo npm ci
NPM: ningún paquete empareja
Estoy en una reunión con un cliente en este momento y no puedo hacer una demostración: [
Estoy en una reunión con un cliente en este momento y no puedo hacer una demostración: [
muuuy. ¿Está demostrando npm install
a sus clientes?
yo tengo el mismo problema
No hay gasoducto el lunes en India también 💃
¡Dios mío, por favor comparte la carpeta node_modules
, cualquiera!
lo mismo aquí
"Todos los sistemas operativos": la mayor mentira
¿Inestable pero no mejora?
NPM: Nunca empujes Mocks
@ anant-k-singh sí, memes, ¿dónde has estado? ;-) muchos pulgares en la comunidad de front-end ahora, ¿verdad?
... y ¿dónde está ese proxy npm de almacenamiento en caché local / local cuando lo necesita?
https://status.npmjs.org/ es muy útil ...
Someon simplemente debería cargar una carpeta de node_modules angularjs en Google Drive por el amor de Dios
Estoy en una reunión con un cliente en este momento y no puedo hacer una demostración: [
FeelsBadMan, tan mal "poder de demostración" que el mundo entero se ve afectado ..
Actualizaron la página de estado.
npm WARN obsoleto request@2.88.2 : la solicitud ha quedado obsoleta, consulte https://github.com/request/request/issues/3142
npm ERR! código E429
npm ERR! 429 Demasiadas solicitudes: OBTENGA https://registry.npmjs.org/jsonschema/-/jsonschema-1.2.5.tgz
npm ERR! Puede encontrar un registro completo de esta ejecución en:
npm ERR! C: \ Users \ Lenovo \ AppData \ Roamingnpm-cache_logs \ 2020-02-17T12_50_04_887Z-debug.log
Estoy aqui solo por los memes
Hola a todos, ¿podríamos mantener los memes y las bromas en los respectivos canales de Slack / Discord / IRC en lugar de este problema de GitHub? Son conscientes de este problema y han actualizado StatusPage.
npm ERR! código E429. ¡aquí!
"Todos los sistemas operativos": la mayor mentira
jq -r '.dependencies * .devDependencies | keys[]' package.json | xargs -L 1 -I {} sh -c "echo installing {}; npm i {}; sleep 10"
Parece funcionar si no instala todos sus paquetes a la vez ... Esto funcionará si está desesperado, pero es bastante lento ...
403/429 Erros para algunos usuarios
¿Qué tal todo?
Hola, ¿hay alguna actualización sobre esto?
E429
aquí también (Países Bajos)
Compilación desde una máquina local desencadenada por Azure DevOps.
Finalmente comenzó a funcionar (página de estado 💃)
abajo desde 1 hora y media. espero que encontremos la solución pronto
La solución temporal funciona para mí, abre package-lock.json
Encuentre https://registry.npmjs.org
y reemplácelo con https://registry.npmjs.com
Ejecutar npm ci
Es bueno saber que no estoy solo 🤣
"recibido por algunos usuarios", dijeron
Lo mismo aquí en Marte.
toda esperanza esta perdida
¿Qué le pasaría al mundo si NPM se detuviera para siempre? Eso es un poco pensador
Este problema me hizo probar hilo ... en realidad, por primera vez. ¡Funciona como un encanto!
Mi astrólogo predijo este evento.
Estoy en una reunión con un cliente en este momento y no puedo hacer una demostración: [
muuuy. ¿Está demostrando
npm install
a sus clientes?
No traje mi computadora portátil, un colega mío dijo que podía traerla.
Teamviewer funciona aunque ...
Cuando los memes se cargan más rápido que NPM
Hola, equipo de npm
¿Podrías reiniciar tu computadora?
Atentamente
Vino por el problema, me quedé por los memes
Sea respetuoso y evite publicar nada excepto memes en este hilo. Gracias.
Funciona
npm install finalmente funcionó para mí
Tengo un directorio de módulos de nodo de Angular9 a la venta. DMme tus ofertas
¡Está vivo!
@npm
Ah, no por mucho tiempo, ya no hay memeland :(
Este soy yo informando en vivo desde el frente npm. ¡Parece que está funcionando de nuevo!
Salud
La solución temporal funciona para mí, abre package-lock.json
Encuentrehttps://registry.npmjs.org
y reemplácelo conhttps://registry.npmjs.com
Ejecutarnpm ci
Gracias. Esto funciona para mi.
Saludos, empezó a funcionar
Oh no ... mis notificaciones por correo !! 🌊
¡trabajando!
Bien chicos, esto ha sido muy gracioso. Hasta la próxima
La solución temporal funciona para mí, abre package-lock.json
Encuentrehttps://registry.npmjs.org
y reemplácelo conhttps://registry.npmjs.com
Ejecutarnpm ci
trabajó para mi
Parece que el título del problema cambiará de " Demasiadas solicitudes " a " Demasiados comentarios "
ya es el problema más comentado en la lista
(cuando el problema de github se actualiza más rápido que la página de estado de npm)
funciona para mí también
¿Has probado rm -rf node_modules/ package-lock.json && npm install
?
esperando votos negativos
https://github.com/npm/cli/issues/836#issuecomment -586973004
Puede usar: https://github.com/open-services/open-registry# npm npm config set registry https://npm.open-registry.dev # yarn yarn config set registry https://npm.open-registry.dev
¿Por qué todos los votos negativos por open-registry
?
Alternativamente, intente npm config set registry https://registry.npm.taobao.org
Esto ha sido divertido
node_modules a la venta. pm me por buenas ofertas: D
¿Has probado
rm -rf node_modules/ package-lock.json && npm install
?
429 Demasiados votos negativos
Diviértete haciendo NPM.
Mi reacción cuando NPM dice que deje de enviar memes
Intentó reiniciar la PC, tal vez el error desaparezca. Porque me ayudó.
¡Mi construcción empezó a funcionar de nuevo! Supongo que lo apagaron y lo encendieron finalmente
Houston, está funcionando aquí.
funciona ahora para mí también
node_modules a la venta. pm me por buenas ofertas: D
Probablemente lo peor que puedas escribir en una comunidad de
bien parece estar arreglado. funciona en la región de AWS de Singapur
¡Funciona ahora!
trabajando ahora Región de AWS de Virginia del Norte
Trabajando ahora - Área 51 👽
Ahora funciona. Gracias al equipo de soporte de NPM. Sana todos <3
Nos vemos luego en otro tema, gente de Internet
Señores, ¡fue un placer!
cerrarlo, tal vez?
De nuevo en línea en Bulgaria. ¡Gracias, amigos!
¿Podemos hacer esto de nuevo?
mi nombre jeff
CI en funcionamiento ... ahora a trabajar ... ha sido un honor
Esta interrupción me ayudó a optimizar mi Dockerfile, no es broma.
Gracias por tomarse de la mano.
Bloquea este problema, no puedo hacer que nadie vuelva a trabajar, incluido yo
Reino Unido aquí. estaba encontrando el problema 429 al instalar next.js pero reaccionar y react-dom estaban bien. Todo está bien ahora parece
Hola, equipo de npm
¿Podrías reiniciar tu computadora?
Atentamente
¡¡¡Finalmente lo lograron !!! 3 veces...
Trabajando ahora en Suecia 🇸🇪!
¡Nos vemos la próxima vez que NPM no esté disponible!
Al menos, github parece estar altamente disponible
GitHub está tratando de actualizar en vivo las respuestas de emoji y es como fuegos artificiales de emoji.
Siguiente problema: GitHub no funciona: D
Causa: demasiadas solicitudes en NPM error # 837836
Success! created app at C:/XXXX
"Monitoreo: nuestro socio de entrega de contenido nos ha informado que han implementado una solución. Estamos monitoreando".
¿Problema de Cloudflare?
Grand Rapids, MI aquí
Este es mi primer comentario sobre Github con tantas reacciones: los amo a todos ❤️Nos vemos pronto
EDITAR: tantos votos negativos * 😄¡mantenga! abajo quiero decir ...
¡Ralph rompió Internet!
Solo quiero ser parte de esto. Buen trabajo NPM 👍
¿Entonces todos hacemos memes ahora?
¡Finalmente está funcionando!
(https://user-images.githubusercontent.com/57898245/74657035-b1009500-518f-11ea-9e95-290b51db7dbb.png)
Parece arreglado ahora.
Ciérrelo, no puedo hacer que nadie vuelva al trabajo, incluido yo.
No
Problemas de NPM que unen a las personas :)
Ya que tengo toda su atención, ¿puedo interesarle en mi último esquema piramidal?
Todo se ve bien ahora en República Checa :) Gracias equipo de NPM
NPM usando FORCE
Ok en Irán también, ¡cuestión graciosa!
la sede de npm sea ahora mismo
Deja que los memes te acompañen
🇵🇹
jajaja
mis paquetes no se instalaron!
Oh Dios, llegué tarde a la fiesta, ya está funcionando.
¡Gracias internet!
consola cambiada por npm: 100:
hey, estoy aquí para informar un error con ...
▲
▲ ▲
PSHH PSHH YOBA MI V EFIRE !! 1 🚣♂️
¡Todos a bordo del tren meme! 🚂
Publicar memes / bromas en un problema hace perder el tiempo a las personas que realmente necesitan poder leer el problema.
Para. Usa emoji reacciona si sientes la necesidad.
Necesitamos más de estos errores, especialmente el lunes.
@cmcarey nunca es malo sonreír y reír, nunca es perder el tiempo, mejorará tu productividad en realidad, los memes y las bromas nos convierten en humanos en lugar de solo máquinas en funcionamiento, ¡incluso Detroit se convierte en un hombre humano!
Hola desde la misma GALARETKA !!
¡hola desde Internet!
Al menos pronto se convertirá en el tema más comentado.
Sugerencia: cree una entrada para "servicios CDN" en la página de estado de npm, ya que parece que el problema real fue con Cloudflare
https://github.com/npm/cli/issues/836#issuecomment -586992790
@cmcarey nunca es malo sonreír y reír, nunca es perder el tiempo, mejorará tu productividad en realidad, los memes y las bromas nos convierten en humanos en lugar de solo máquinas en funcionamiento, ¡incluso Detroit se convierte en un hombre humano!
Este no es el momento ni el lugar para eso. Una avalancha de comentarios como el que estamos viendo aquí complica el trabajo de clasificar para encontrar detalles que puedan ayudar a las personas que realmente pueden solucionar el problema.
Trabajando ahora en Brasil: Brasil :!
Andre de seguridad npm aquí. Nuestro socio de entrega de contenido nos ha informado que han implementado una solución. y seguimos monitoreando la situación. Puede encontrar más información en nuestra página de estado: https://status.npmjs.org/.
Cerrando el problema, pero si tiene algún problema, comuníquese con support@npmjs.com
@aeleuterio ¿ Alguna posibilidad de que podamos obtener una autopsia sobre esto?
¡Trabajando ahora!
DIOS MIO. ¡No vuelvas a hacer eso! ¡Nunca! )))))
No está funcionando de nuevo. Supongo que sus socios no han solucionado el problema.
@cmcarey nunca es malo sonreír y reír, nunca es perder el tiempo, mejorará tu productividad en realidad, los memes y las bromas nos convierten en humanos en lugar de solo máquinas en funcionamiento, ¡incluso Detroit se convierte en un hombre humano!
Sin embargo, los memes y las bromas ahogan la conversación que puede ser vital para solucionar el problema.
Trabajando ahora 😓
Sin embargo, los memes y las bromas ahogan la conversación que puede ser vital para solucionar el problema.
De hecho, tuve que desplazarme por unos 200 memes solo para ver la actualización de estado real de NPM.
Solo para su información: el hilo pudo cargar los paquetes sin activar el límite de velocidad: 1)
el hilo es genial! (y seguro)
Hola y muchas disculpas de Cloudflare, una especie de autopsia directamente en los comentarios de su problema.
Soy el gerente de ingeniería del equipo de protección DDoS y esta mañana a las 11:06 UTC modificamos una regla que afectó una de nuestras señales. La señal se relaciona con el encabezado de referencia de HTTP, y tenemos un fragmento de código que examina los encabezados de referencia no válidos. En este caso, lo modificamos para incluir no solo "basura obvia" sino "cualquier cosa que no se ajuste a la especificación HTTP" ... es decir, ¿el referente es un URI? De lo contrario, contribuye al conocimiento sobre el mal tráfico.
Entonces ... ¿por qué esto afectó a npmjs.org? Resulta que una gran cantidad de tráfico NPM envía el referente como "instalar", lo que no es válido según la especificación HTTP. Como NPM también es un sitio con mucho tráfico, esto dio lugar a que los sistemas DDoS lo detectaran y trataran el tráfico como una inundación HTTP y determinaran que se debería aplicar un límite de velocidad.
Cuando notamos que NPM estaba viendo un aumento en HTTP 429 (como se ve en Twitter), nos contactamos con NPM y comenzamos una investigación interna. Tan pronto como identificamos la causa raíz, revertimos el cambio, que fue a las 13:00 UTC.
Notaremos que NPM y otro sitio usan el referente para propósitos fuera de la especificación HTTP y actualizaremos nuestros sistemas para asegurarnos de que esto no vuelva a suceder. Además, mejoraremos nuestro monitoreo de cambios de esta naturaleza para que podamos descubrir el impacto antes y retroceder automáticamente.
Gracias por la explicación @ buro9
Con suerte, tendrá algunas pruebas explícitas para NPM, dada la importancia para la comunidad de desarrolladores.
Nosotros (y muchos otros, estoy seguro) no pudimos implementar varios proyectos durante 2 horas esta mañana, durante el horario comercial de la UE. Esto también debería servirnos de recordatorio para que todos tengamos mejores medidas de continuidad para cuando ocurran estos eventos.
En mi opinión, sería mejor asegurarse de que las solicitudes del instalador de NPM cumplan con la especificación HTTP.
En mi opinión, sería mejor asegurarse de que las solicitudes del instalador de NPM cumplan con la especificación HTTP.
Referer debe estar en blanco, el instalador debe ser un agente de usuario
Gracias, puedo descargar todas mis dependencias 5464950 cada 15 minutos para otra compilación nuevamente.
@ buro9 le agradeceríamos que respondiera a nuestros tickets y nuestras comunicaciones internas flojas, antes de publicar en un problema público, todavía no hemos recibido un informe post-mortem de las dos últimas interrupciones.
en cuanto a apuntar a las especificaciones HTTP, considerando que este comportamiento ha estado en su lugar durante años, me gustaría pedir revisar qué cambio se impulsó hoy en CF que causó este resultado repentino de "cumplimiento con la especificación HTTP".
Le volveré a pedir que haga un seguimiento de nuestros tickets abiertos y que nos informe en la autopsia de las dos últimas interrupciones, preferimos aprender sobre esto directamente de usted, que verlo en un problema en github. .
Hola y muchas disculpas de Cloudflare,
No creo que tengas que disculparte. npm obviamente arruinó el campo de referencia y no hizo nada malo. El hecho de que haya funcionado accidentalmente en el pasado no significa que deba permanecer así. ¿Quién garantizará que algo como esto no vuelva a suceder en el futuro, porque alguien está respetando las especificaciones?
npm obviamente arruinó el campo de referencia y no hizo nada malo. El hecho de que haya funcionado accidentalmente en el pasado no significa que deba permanecer así.
Eso se llama rupturas de BC y no debería ocurrir en la misma "versión".
npm obviamente arruinó el campo de referencia y no hizo nada malo. El hecho de que haya funcionado accidentalmente en el pasado no significa que deba permanecer así.
Eso se llama rupturas de BC y no debería ocurrir en la misma "versión".
Sí, te doy ese punto. Pero ojalá la decisión no sea "se queda así para siempre y todos deben cumplir".
(…)
modificamos una regla que afectó a una de nuestras señales. La señal se relaciona con el encabezado de referencia de HTTP, y tenemos un fragmento de código que examina los encabezados de referencia no válidos.
(…)
Entonces ... ¿por qué esto afectó a npmjs.org? Resulta que una gran cantidad de tráfico NPM envía el referente como "instalar", lo que no es válido según la especificación HTTP.
¿No permite el encabezado Referer
el uso de URI parciales o relativos ? https://tools.ietf.org/html/rfc7231#section -5.5.2
5.5.2. Referer The "Referer" [sic] header field allows the user agent to specify a URI reference for the resource from which the target URI was obtained (i.e., the "referrer", though the field name is misspelled). A user agent MUST NOT include the fragment and userinfo components of the URI reference [RFC3986], if any, when generating the Referer field value. Referer = absolute-URI / partial-URI
Sin probar la existencia del URI en el servidor, ¿cómo distinguir el texto arbitrario codificado en urlencoded de un URI parcial real?
Si sigo las deducciones de la especificación, entonces un Referer
encabezado install
a primera vista podría ser perfectamente válido:
https://tools.ietf.org/html/rfc7230#section -2.7
relative-part = <relative-part, see [RFC3986], Section 4.2> partial-URI = relative-part [ "?" query ]
https://tools.ietf.org/html/rfc3986#section -4.2
relative-ref = relative-part [ "?" query ] [ "#" fragment ] relative-part = "//" authority path-abempty / path-absolute / path-noscheme / path-empty
https://tools.ietf.org/html/rfc3986#section -3.3
path-noscheme = segment-nz-nc *( "/" segment ) segment = *pchar segment-nz = 1*pchar segment-nz-nc = 1*( unreserved / pct-encoded / sub-delims / "@" ) ; non-zero-length segment without any colon ":" pchar = unreserved / pct-encoded / sub-delims / ":" / "@"
Entonces, si no estoy malinterpretando terriblemente la especificación, me pregunto: ¿Por qué diablos ese encabezado de referencia se ha tratado como no válido? ¿Cloudflare verifica la existencia de ese URI a pedido (y luego lo almacena en caché), o se trata una vez más de un disparo rápido y suelto?
@datenwolf sintácticamente debería ser posible tener un URI parcial como install
, pero qué tal esto, unas pocas líneas debajo del texto citado:
If the target URI was obtained from a source that does not have its
own URI [...], the user agent MUST either exclude the
Referer field or send it with a value of "about:blank".
Esto en mi humilde opinión se aplica aquí.
Sin embargo, esto no responde a su última pregunta. Pero parece que el tema es un poco más complejo y se divide en dos partes: 1) npm cumple con la especificación http y 2) CF usa reglas de detección confiables. Y quizás, solo quizás, la respuesta a ambas preguntas es: no. Pero dejo esto para que otros lo discutan. Solo quería señalar que disculparse prematuramente por "algo" puede dejar errores potenciales sin corregir, por lo que la redacción podría haber sido un poco desafortunada hacia una "solución" real al problema, sea lo que sea.
En lugar de implementar block mode
el primer día, debería haber estado en observe mode
durante algún tiempo.
@datenwolf sintácticamente debería ser posible tener un URI parcial como "instalar", pero qué tal esto, unas líneas debajo de su texto citado:
If the target URI was obtained from a source that does not have its own URI [...], the user agent MUST either exclude the Referer field or send it with a value of "about:blank".
Esto en mi humilde opinión se aplica aquí.
Sí lo hace. Quizás no lo he dejado lo suficientemente claro, que soy plenamente consciente de esto. Pero eso es completamente ajeno al punto.
Como ya has señalado
(…) Parece que el tema es un poco más complejo y se divide en dos partes: 1) npm cumple con la especificación http, y 2) CF usa reglas de detección confiables. (…)
y ya señalé, que sin una verificación explícita de la existencia del URI Referer
, la validez del encabezado es imposible de decidir.
¿Npm viola la especificación? Por supuesto.
¿Puede la FQ detectarlo correctamente? Solo realizando una verificación explícita del URI. ¿CF realiza esa verificación? No lo sé ... todavía (pero podría establecer un campo de pruebas, solo para eso).
Sin embargo, sin más información, debo asumir que CF volvió a hacer lo que hace CF y por razones infundadas rompió una parte de Internet ... una vez más.
Vale la pena tener en cuenta en todo esto que hay muy poco que una CDN pueda hacer que mejore significativamente su servicio y que no conlleve el riesgo de "romper una parte de Internet". La naturaleza del servicio que brinda CF, y su merecida popularidad como alguien que brinda ese servicio, significa que básicamente siempre están jugando con fuego y es probable que molesten a muchas personas cuando hacen que, de otro modo, sean perdonables y bien intencionados. errores.
Habiendo hecho esto de npm desde hace bastante tiempo, no me falta simpatía por su posición, y creo que es inapropiado despreciarlos por esto. Están haciendo un gran trabajo, protegiendo a npm (y por lo tanto, a toda la comunidad de JS) de muchos malos actores e interrupciones, y haciendo que todas nuestras compilaciones sean mucho más rápidas y confiables. Amamos y apreciamos Cloudflare. Así que seamos amables aquí.
Dicho esto, creo que npm no viola la letra ni el espíritu de las especificaciones HTTP relevantes en nuestro uso del encabezado Referer para indicar el comando que provocó la realización de una solicitud determinada. Espero que cualquiera que siga esta discusión encuentre útil o al menos agradable la siguiente avalancha de pedantería HTTP. Si ese no es tu tipo de cosas, haz otra cosa, no te lo pasarás bien leyendo esto :)
CF implementó un cambio que trataba el uso inusual de encabezados HTTP como una heurística para marcarlo como una solicitud maliciosa. Cuando se trata principalmente del tráfico de los navegadores web, el encabezado Referer generalmente siempre faltará, about:blank
, o una URL completa. Entonces, un encabezado como Referer: install
es extraño.
Sin embargo: la especificación dice "URI". No dice "URL". Ciertamente no dice "URL totalmente calificada". Dado el uso típicamente meticuloso de "URI" frente a "URL" en la documentación del IETF, las discusiones desgarradoras que a menudo surgen sobre asuntos como este, y el hecho de que Referer apareció por primera vez en
Un URI y una URL no son lo mismo. Ambos RFC vinculados se han actualizado y obsoleto (en parte) desde su inicio por RFC posteriores, y recomiendo encarecidamente a cualquiera que todavía esté leyendo en este punto a seguir los enlaces y aprender cómo los estándares de Identificación y Ubicación Uniforme de Recursos han cambiado y expandido de manera sutil y formas interesantes a lo largo de los años.
La conclusión es la siguiente: el encabezado HTTP Referer
no necesita ser un _Locator_ uniforme de recursos, sino un _Identificador_ uniforme de recursos. No es necesario que este identificador utilice un esquema de URI conocido, o que sea un formato completo en lugar de relativo. La única limitación que se le impone es que (a) debe ser un URI y (b) si la solicitud satisface una solicitud de usuario directa que no tiene ningún tipo de identificador, como escribir una URL en una barra de direcciones, entonces _debe_ omitirse.
Un URI explícitamente _no_ necesita ser localizable, recuperable o resuelto por un agente de red dado, o sobre un protocolo dado.
Entonces, install
es un identificador de la cosa con la que el usuario interactuó y que causó la solicitud. No escribieron la URL del paquete o tarball en una barra de direcciones, escribieron npm install
y _it_ a su vez obtuvieron el recurso a través de HTTPS. Para resolver ese recurso, tuvo que realizar algunas solicitudes HTTP. No se proporciona ningún esquema, pero no se requiere ninguno. "instalar" es una serie compacta de caracteres que identifican un recurso. Es un URI sin esquema (es decir, no completamente calificado).
Como la semántica y la sintaxis de URI están definidas por su esquema, es imposible, en ausencia de un esquema, decir que install
no es válido. Por ejemplo, tel:+12345678901
es un URI válido (y una URL válida), pero http:+12345678901
no lo es. Para saber si +12345678901
es un URI parcial válido, debe conocer el esquema. Su localización dependería de los detalles de los sistemas telefónicos del noreste de Ohio, EE. UU. Si una llamada telefónica a un sistema automatizado en ese número activa una solicitud HTTP, sería perfectamente apropiado que esa solicitud HTTP incluyera un encabezado Referer de +12345678901
. Si el servidor espera recibir solicitudes de dicho sistema telefónico, puede inferir el esquema según el contexto.
Eso es exactamente lo que sucede con el cliente npm y el registro npm. Envía un encabezado Referer que contiene el comando que se está ejecutando. (Cuando el comando contiene argumentos posicionales, todo lo que contenga /
o \
se redacta, ya que puede ser una ruta privada, una url o un repositorio de git). uso del encabezado HTTP Referer en un contexto que no sea del navegador, y creo sinceramente que, después de 30 años de revisión, análisis y revisión por parte del IETF, a través de múltiples versiones de esta especificación, si esta no fue la intención de la especificación Referer, habría dicho "URL" en lugar de "URI".
Y solo para reiterar, ciertamente no creo que Cloudflare sea un mal actor aquí, y estoy decepcionado de ver lo rápido que han sido tantas personas para "tomar partido" como si fuera npm vs Cloudflare en una batalla por esto. Nos afectó un error que cometieron, pero a veces nos afectarán los errores que cometan, porque somos sus clientes y, por supuesto, van a cometer errores de vez en cuando, porque los humanos y las máquinas. no son perfectos. Así es el mundo. En general, estamos muy contentos con la respuesta que obtuvimos y todos hemos mejorado nuestros sistemas de seguimiento y respuesta a la luz de este inconveniente.
FWIW, el "referente" no se define como URI. Consulte la especificación: https://greenbytes.de/tech/webdav/rfc7231.html#rfc.section.5.5.2 . Es una referencia de URI. "install" se interpretaría como ruta, en relación con el URI de solicitud.
@reschke Incluso en esa lectura, sigue siendo perfectamente válido.
Es decir: desde https://registry.npmjs.org/foo
, con Referer: install
, el Referer completamente resuelto sería https://registry.npmjs.org/install
, un URI válido. Desde https://registry.npmjs.org/foo/-/foo-1.2.3.tgz
, sería https://registry.npmjs.org/foo/-/install
, también un URI válido.
Incluso si estoy leyendo la especificación de manera más amplia de lo previsto, ciertamente no es una "violación" de la especificación usar Referer de esta manera, y es un (¡completamente perdonable!) Una extralimitación errónea para bloquear o solicitudes de límite de velocidad que incluyen Referer encabezados que no son URL completamente calificadas.
Sin embargo, a la luz de esto, probablemente _ valdría la pena_ poner un esquema en los encabezados de Referer que envía npm cli. Tendríamos que investigar esto para ver si eso hace que sea más o menos probable que las solicitudes sean destruidas por proxies. Otra opción, por supuesto, es aceptar que algunos proxies estarán demasiado ansiosos en el filtrado, lo que resultará en datos un poco menos ideales, pero use un encabezado personalizado con un significado más definitivo, como npm-command: install
lugar. Hacemos esto para el encabezado npm-session
para agrupar las solicitudes, y hemos encontrado casos en los que no obtenemos este encabezado personalizado, aunque el agente de usuario implica que es un cliente npm "real" (o en menos, dice ser).
Comentario más útil
Hola y muchas disculpas de Cloudflare, una especie de autopsia directamente en los comentarios de su problema.
Soy el gerente de ingeniería del equipo de protección DDoS y esta mañana a las 11:06 UTC modificamos una regla que afectó una de nuestras señales. La señal se relaciona con el encabezado de referencia de HTTP, y tenemos un fragmento de código que examina los encabezados de referencia no válidos. En este caso, lo modificamos para incluir no solo "basura obvia" sino "cualquier cosa que no se ajuste a la especificación HTTP" ... es decir, ¿el referente es un URI? De lo contrario, contribuye al conocimiento sobre el mal tráfico.
Entonces ... ¿por qué esto afectó a npmjs.org? Resulta que una gran cantidad de tráfico NPM envía el referente como "instalar", lo que no es válido según la especificación HTTP. Como NPM también es un sitio con mucho tráfico, esto dio lugar a que los sistemas DDoS lo detectaran y trataran el tráfico como una inundación HTTP y determinaran que se debería aplicar un límite de velocidad.
Cuando notamos que NPM estaba viendo un aumento en HTTP 429 (como se ve en Twitter), nos contactamos con NPM y comenzamos una investigación interna. Tan pronto como identificamos la causa raíz, revertimos el cambio, que fue a las 13:00 UTC.
Notaremos que NPM y otro sitio usan el referente para propósitos fuera de la especificación HTTP y actualizaremos nuestros sistemas para asegurarnos de que esto no vuelva a suceder. Además, mejoraremos nuestro monitoreo de cambios de esta naturaleza para que podamos descubrir el impacto antes y retroceder automáticamente.