Elffuss Elffuss CodeProyecto del día
Proyecto del día · 25 de septiembre de 2026

«Máximo 10 MB» y rechazaba un archivo de 9,7 MB

La interfaz decía un número y el validador comparaba otro. Ninguno de los dos estaba mal: estaban divididos por cosas distintas.

El IDE con IA local en el navegadorlocal · en el navegador

El formulario de subida decía «máximo 10 MB por archivo». Una gestoría sube ahí su documentación mensual y cada cierto tiempo saltaba el error. Mandaban captura: al lado del nombre del fichero, la propia interfaz ponía 9,7 MB. Justo debajo, en rojo, el archivo supera el límite de 10 MB. Dos frases de la misma pantalla contradiciéndose.

Lo primero que se piensa es que el límite real está en el proxy, o que se cuenta el multipart entero con las cabeceras. No era eso.

Dos divisiones que no eran la misma

La etiqueta que se muestra dividía dos veces entre 1024. La validación comparaba contra 10 × 1000 × 1000. Un fichero de 10.200.000 bytes se enseña como 9,7 y se rechaza por pasarse de 10. Ni el formateador ni el validador estaban mal por separado; simplemente nadie los había escrito el mismo día.

Unificar la base es cosa de un minuto. Lo interesante viene después: aunque uses la misma división en los dos sitios, sigue habiendo una franja donde la interfaz miente. Con un decimal, todo lo que va de 10.433.000 a 10.485.760 bytes se pinta como 9,9 MB. Unos entran y otros no, y por pantalla son idénticos.

Qué le pedí al IDE

Abrí Elffuss Code y pegué el componente de subida entero, más una lista de los tamaños exactos en bytes de los ficheros que habían fallado esa semana. Le pedí tres cosas, en este orden:

El primer intento me devolvió un Math.round y una prueba que solo comprobaba el caso feliz. Le enseñé la tabla vacía y le dije que rellenara qué esperaba en cada fila antes de tocar la función. Ahí salió solo el problema del redondeo, y con él el mensaje de error definitivo, que ahora dice el tamaño y el límite en la misma unidad y con la misma regla.

Por qué no salió nada de la máquina

En las capturas de la gestoría los ficheros se llaman como se llaman de verdad: apellidos, un DNI, el mes. Para reproducir el fallo necesitaba esos nombres y esos tamaños tal cual, no un archivo1.pdf inventado. Con el modelo corriendo en el navegador, sobre la GPU del portátil, eso es un no-problema: el prompt, el componente interno y los nombres de los clientes no viajan a ningún servidor porque no hay servidor al que viajar. No es una postura, es que no hacía falta.

El bug no era el límite. Era que la pantalla y el validador contaban con reglas distintas y el usuario solo veía una de las dos.

Abre Elffuss Code y pega el código de verdad, con los nombres de fichero de verdad: corre entero en tu navegador, sobre tu propia GPU, y no sube nada a ningún sitio.

Abrir Code →
nada de esto se sube a ningún sitio