"Unexpected end of archive"

Seis herramientas, seis frases distintas, un mismo hecho de fondo: el archivo es más corto de lo que su propia estructura dice que debería ser. Esta página descifra el mensaje herramienta por herramienta, muestra exactamente qué marcador de final de archivo desaparece en ZIP, RAR, 7z y tar, y luego te encamina hacia la vía de recuperación correcta — todo sin entregar el archivo a un servidor.

Tu archivo nunca sale de tu dispositivo — la reparación ocurre en tu navegador. 0 bytes subidos.

Your data is the big block — usually intact. What breaks is the small index. Repair rebuilds it.

Suelta un archivo aquí o exploraToca para elegir un archivo

ZIP · Office · PDF · vídeo · JPG · PNG · RAR/7z · SQLite — reparados aquí mismo, en tu navegador. No se sube nada

0 bytes subidosGratis: 3 reparaciones/día — hasta 500 MB de vídeo, 100 MB de documentos y archivos, 50 MB de fotos. Descarga gratuita. Una reparación 5,90 €. Sin cuenta.

Repáralo ahora

  1. Suelta el archivo
  2. La reparación ocurre en local
  3. Descarga el resultado

Es un único mensaje de error disfrazado de muchas formas. WinRAR dice "Unexpected end of archive"; 7-Zip suele decir "Unexpected end of data"; el unzip de línea de comandos se queja de que "cannot find zipfile directory"; macOS lanza un críptico "Error 2"; y tar informa de "Unexpected EOF in archive." Todos describen lo mismo — la herramienta leyó el archivo esperando un marcador estructural en una posición conocida y se topó con el final de los bytes. Suelta el archivo arriba e IntactFile inspecciona su disposición real en tu navegador, encuentra las entradas que se escribieron por completo antes de que el archivo se agotara y las extrae, en vez de rechazar el conjunto entero por una cola que falta.

El texto exacto, herramienta por herramienta

El mensaje que ves es una pista sólida sobre qué herramienta y qué formato tienes entre manos — vale la pena descifrarlo antes de hacer nada, porque cada una falla en un punto ligeramente distinto.

  • WinRAR — "Unexpected end of archive." El clásico. WinRAR llegó al final del archivo mientras la cabecera de un bloque o el marcador de fin de archivo aún decían que debía haber más. Vale tanto para los .rar como para los ZIP que WinRAR abre.
  • 7-Zip — "Unexpected end of data" (a veces "Unexpected end of archive"). 7-Zip distingue un truncamiento limpio ("end of data") de una firma incorrecta ("is not archive") y de un byte alterado ("Data error"). "End of data" significa en concreto que el flujo se detuvo a medias — un truncamiento, no un revoltijo.
  • Info-ZIP unzip — "cannot find zipfile directory … End-of-central-directory signature not found." unzip busca hacia atrás desde la cola tratando de hallar PK\x05\x06 y nunca lo encuentra, así que ni siquiera puede construir su lista de archivos. Los datos pueden estar bien; lo que se ha perdido es el índice.
  • Explorador de Windows — "The compressed (zipped) folder is invalid." El extractor integrado es el menos específico de todos. Suele ser la misma historia del EOCD ausente — consulta "Compressed folder is invalid" para ese mensaje exacto.
  • Utilidad de Archivo de macOS — "Error 2 – No such file or directory." Famosamente opaco: el "archivo" que no encuentra es el registro del directorio central que esperaba al final. El mismo truncamiento, con un mensaje excepcionalmente inútil.
  • Python zipfileBadZipFile: File is not a zip file, o un error al hacer .read(). Si falta el EOCD, zipfile se niega siquiera a abrir; si solo una entrada tardía está truncada, abre sin problema y falla únicamente cuando lees ese miembro.
  • GNU tar / gzip — "Unexpected EOF in archive" / "unexpected end of file." Una estructura completamente distinta (sin índice central alguno) — la tratamos más abajo.

Si tu mensaje está en esta lista, casi con seguridad tienes un archivo corto, no uno revuelto — y la recuperación es la misma sin importar qué herramienta lo haya informado.

Dónde vive “el final”, formato por formato

Todo formato de archivo comprimido guarda una pequeña estructura crítica que dice "el archivo está completo y aquí está indexado su contenido." Esa estructura vive en la cola del archivo, o cerca de ella — que es justo la región que un truncamiento destruye primero. Saber qué marcador falta te dice cuánto se puede rescatar.

  • ZIP — End Of Central Directory (PK\x05\x06). Un ZIP es una serie de entradas locales (cada una empezando por PK\x03\x04), luego un directorio central de registros PK\x01\x02 y, por último, el EOCD de 22 bytes. El EOCD es el índice. Los archivos grandes o de más de 4 GB añaden un registro EOCD ZIP64 (PK\x06\x06) y un localizador (PK\x06\x07) justo antes. Pierde la cola y pierdes el índice — pero no las entradas locales, que se describen a sí mismas.
  • RAR 4 — bloque de fin de archivo (HEAD_TYPE 0x7B). Tras la firma Rar!\x1A\x07\x00, RAR4 almacena bloques decodificables de forma independiente y termina con un bloque de cierre. Los archivos anteriores al corte siguen decodificándose; un RAR creado con un registro de recuperación puede reconstruir de golpe los bloques que faltan.
  • RAR 5 — cabecera de fin de archivo (tipo de cabecera 5). Firma Rar!\x1A\x07\x01\x00, un formato de cabecera rediseñado, la misma idea: una cabecera de final dedicada que un truncamiento elimina.
  • 7z — la Start Header apunta a una End Header en la cola. Tras la firma 37 7A BC AF 27 1C y dos bytes de versión hay una Start Header de 20 bytes con NextHeaderOffset, NextHeaderSize y un CRC — un puntero a la base de datos de cabeceras al final mismo del archivo. Trunca el archivo y ese puntero apunta más allá del último byte. Peor aún, .7z usa por defecto compresión sólida, encadenando los archivos en un único flujo, así que una cola perdida puede romper todos los archivos posteriores al último bloque completo.

El patrón es universal: los metadatos que el extractor necesita primero se guardan los últimos, así que son los metadatos que un truncamiento mata primero. Por eso "unexpected end" es tan frecuente y por eso los datos en sí suelen seguir siendo recuperables.

.tar y .tar.gz: no hay índice que perder, un EOF distinto

Tar es la excepción, y merece su propia nota porque el diagnóstico es distinto. Un .tar no tiene ningún índice central: es una secuencia plana de registros de 512 bytes — un bloque de cabecera por archivo (la cabecera ustar con nombre, tamaño y una suma de comprobación), y luego los datos del archivo rellenados hasta el siguiente límite de 512 bytes. El archivo se declara terminado con dos bloques consecutivos de 512 bytes todo a cero. Si esos bloques de cero finales nunca llegaron, tar imprime "Unexpected EOF in archive" aunque cada archivo que se escribió por completo sea perfectamente extraíble — tar simplemente recorre los registros de principio a fin, así que recupera todo hasta el byte en que se quedó sin datos.

Un .tar.gz (o .tgz) envuelve ese flujo tar en gzip. Un miembro gzip es una cabecera de 10 bytes (1F 8B 08 …), el flujo deflate y un tráiler de 8 bytes con un CRC-32 de los datos sin comprimir y el ISIZE (el tamaño original módulo 2³²). Trúncalo y gzip informa de "unexpected end of file" — descomprime correctamente justo hasta el corte y luego no tiene tráiler contra el que verificar. El rescate sigue el mismo principio que en ZIP: decodificar hacia delante todo lo que permitan los bytes intactos.

¿Truncamiento, interrupción o degradación de bits? Adónde ir ahora

"Unexpected end" es el síntoma. La causa decide tu mejor jugada, y hay tres:

  • Una descarga del navegador que se atascó o se canceló. Si el archivo venía de un enlace y la transferencia nunca terminó (un .crdownload/.part que se quedó, un "Failed – Network error"), la mecánica de qué bytes exactos sobreviven es particular — consulta una descarga de ZIP interrumpida.
  • Un archivo de la nube que parece completo pero no lo está. Drive, Dropbox y OneDrive pueden entregarte una página de error HTML renombrada como .zip, o una sincronización parcial — un truncamiento que se hace pasar por corrupción. Para distinguir un archivo corto de una degradación de bits real, consulta cómo diagnosticar un archivo comprimido dañado de la nube.
  • El origen mismo es corto. Si al original le falta de verdad su cola, ninguna herramienta puede inventar los bytes ausentes — pero IntactFile aun así extrae todo lo escrito antes del corte. Suéltalo arriba para rescatar las entradas intactas.

En todos los casos, el rescate en sí es idéntico y se ejecuta enteramente en tu pestaña: IntactFile ignora el marcador de final ausente, escanea hacia delante desde el principio del archivo capturando cada entrada intacta y descomprime lo que los bytes supervivientes permitan — TypeScript puro, sin ninguna utilidad de archivos instalada, y puedes mirar la pestaña Red para confirmar que jamás salen de tu equipo ni un solo byte de un archivo privado.

Qué puede y qué no puede reparar

Puede reparar

  • Un ZIP que perdió su EOCD (PK\x05\x06) por una descarga truncada — las entradas locales intactas se recuperan escaneando hacia delante
  • Archivos ZIP64 cuya cola PK\x06\x06 / PK\x06\x07 falta pero cuyas entradas sobrevivieron
  • Archivos RAR en los que los bloques guardados antes del truncamiento aún se decodifican (los RAR con registro de recuperación se reparan mejor)
  • Archivos 7z hasta el último bloque de compresión sólida completo antes del corte
  • Un .tar al que le faltan sus bloques de cero finales, o un .tar.gz truncado antes del tráiler de gzip — todo lo escrito antes del corte se extrae

No puede reparar

  • Cualquier archivo cuyos datos comprimidos quedaran después del punto de truncamiento — esos bytes no están en tu disco
  • Un flujo sólido de 7z más allá de su último bloque intacto (los archivos posteriores de la cadena no se pueden descomprimir)
  • Archivos cifrados / protegidos con contraseña cuando no se proporciona la contraseña
  • Una descarga tan corta que solo llegó un fragmento de la primera entrada

Si una reparación falla, te decimos por qué (datos que faltan frente a estructura dañada), y nunca se te cobra por una reparación fallida.

Preguntas frecuentes

¿Por qué WinRAR y 7-Zip redactan este error de forma distinta para el mismo archivo?

Cada herramienta informa del punto en el que ella se dio por vencida. WinRAR espera un bloque de fin de archivo y dice "Unexpected end of archive"; 7-Zip distingue un corte limpio ("Unexpected end of data") de una firma incorrecta o un byte alterado ("Data error"); unzip ni siquiera encuentra el registro End-Of-Central-Directory. Distinto texto, la misma cola que falta.

macOS solo dice "Error 2 – No such file or directory." ¿Qué es lo que falta?

El “archivo” que la Utilidad de Archivo no encuentra es el registro del directorio central del ZIP, que debería estar al final del archivo. Es el mismo truncamiento que informan todas las demás herramientas — macOS simplemente lo expone con un mensaje inusualmente poco útil.

¿Se puede recuperar un .tar si nunca llegó a tener su final?

Normalmente sí. Un tar no tiene índice — es una secuencia de registros de 512 bytes de principio a fin, terminada por dos bloques de cero. Si faltan esos bloques finales, tar protesta, pero cada archivo escrito antes del corte se extrae limpiamente, porque tar lee los registros en orden.

El archivo es confidencial. ¿Se sube para revisarlo?

No. El archivo se lee desde tu disco y se procesa en la pestaña de tu navegador; no se transmite nada. Abre la pestaña Red y confirma que salen 0 bytes del archivo de tu equipo — útil cuando el archivo guarda documentos que preferirías no copiar al servidor de un desconocido.

Relacionado: Reparar un archivo ZIP · "Compressed folder is invalid" · Truncamiento vs. degradación de bits en archivos de la nube