How to fix sbt reporting "Error wrapping InputStream in GZIPInputStream: java.io.EOFException"?

Jacek Laskowski picture Jacek Laskowski · Dec 3, 2013 · Viewed 13.8k times · Source

While running sbt command in an empty directory, it keeps failing with the following exception:

$ sbt
[info] Loading global plugins from /Users/jacek/.sbt/0.13/plugins
Error wrapping InputStream in GZIPInputStream: java.io.EOFException
    at sbt.ErrorHandling$.translate(ErrorHandling.scala:11)
    at sbt.WrapUsing.open(Using.scala:36)
    at sbt.Using.apply(Using.scala:24)
    at sbt.IO$$anonfun$gzipFileIn$1.apply(IO.scala:778)
    at sbt.IO$$anonfun$gzipFileIn$1.apply(IO.scala:777)
    at sbt.Using.apply(Using.scala:25)
    at sbt.IO$.gzipFileIn(IO.scala:777)
    at sbt.Sync$.readUncaught(Sync.scala:88)
    at sbt.Sync$.readInfo(Sync.scala:84)
    at sbt.Sync$$anonfun$apply$1.apply(Sync.scala:29)
    at sbt.Sync$$anonfun$apply$1.apply(Sync.scala:23)
    at sbt.Defaults$$anonfun$copyResourcesTask$1.apply(Defaults.scala:770)
    at sbt.Defaults$$anonfun$copyResourcesTask$1.apply(Defaults.scala:766)
    at scala.Function4$$anonfun$tupled$1.apply(Function4.scala:35)
    at scala.Function4$$anonfun$tupled$1.apply(Function4.scala:34)
    at scala.Function1$$anonfun$compose$1.apply(Function1.scala:47)
    at sbt.$tilde$greater$$anonfun$$u2219$1.apply(TypeFunctions.scala:42)
    at sbt.std.Transform$$anon$4.work(System.scala:64)
    at sbt.Execute$$anonfun$submit$1$$anonfun$apply$1.apply(Execute.scala:237)
    at sbt.Execute$$anonfun$submit$1$$anonfun$apply$1.apply(Execute.scala:237)
    at sbt.ErrorHandling$.wideConvert(ErrorHandling.scala:18)
    at sbt.Execute.work(Execute.scala:244)
    at sbt.Execute$$anonfun$submit$1.apply(Execute.scala:237)
    at sbt.Execute$$anonfun$submit$1.apply(Execute.scala:237)
    at sbt.ConcurrentRestrictions$$anon$4$$anonfun$1.apply(ConcurrentRestrictions.scala:160)
    at sbt.CompletionService$$anon$2.call(CompletionService.scala:30)
    at java.util.concurrent.FutureTask.run(FutureTask.java:262)
    at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:471)
    at java.util.concurrent.FutureTask.run(FutureTask.java:262)
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
    at java.lang.Thread.run(Thread.java:744)
Caused by: java.io.EOFException
    at java.util.zip.GZIPInputStream.readUByte(GZIPInputStream.java:264)
    at java.util.zip.GZIPInputStream.readUShort(GZIPInputStream.java:254)
    at java.util.zip.GZIPInputStream.readHeader(GZIPInputStream.java:163)
    at java.util.zip.GZIPInputStream.<init>(GZIPInputStream.java:78)
    at sbt.Using$$anonfun$gzipInputStream$1.apply(Using.scala:91)
    at sbt.Using$$anonfun$gzipInputStream$1.apply(Using.scala:91)
    at sbt.Using$$anon$1.openImpl(Using.scala:56)
    at sbt.WrapUsing$$anonfun$open$2.apply(Using.scala:36)
    at sbt.ErrorHandling$.translate(ErrorHandling.scala:11)
    at sbt.WrapUsing.open(Using.scala:36)
    at sbt.Using.apply(Using.scala:24)
    at sbt.IO$$anonfun$gzipFileIn$1.apply(IO.scala:778)
    at sbt.IO$$anonfun$gzipFileIn$1.apply(IO.scala:777)
    at sbt.Using.apply(Using.scala:25)
    at sbt.IO$.gzipFileIn(IO.scala:777)
    at sbt.Sync$.readUncaught(Sync.scala:88)
    at sbt.Sync$.readInfo(Sync.scala:84)
    at sbt.Sync$$anonfun$apply$1.apply(Sync.scala:29)
    at sbt.Sync$$anonfun$apply$1.apply(Sync.scala:23)
    at sbt.Defaults$$anonfun$copyResourcesTask$1.apply(Defaults.scala:770)
    at sbt.Defaults$$anonfun$copyResourcesTask$1.apply(Defaults.scala:766)
    at scala.Function4$$anonfun$tupled$1.apply(Function4.scala:35)
    at scala.Function4$$anonfun$tupled$1.apply(Function4.scala:34)
    at scala.Function1$$anonfun$compose$1.apply(Function1.scala:47)
    at sbt.$tilde$greater$$anonfun$$u2219$1.apply(TypeFunctions.scala:42)
    at sbt.std.Transform$$anon$4.work(System.scala:64)
    at sbt.Execute$$anonfun$submit$1$$anonfun$apply$1.apply(Execute.scala:237)
    at sbt.Execute$$anonfun$submit$1$$anonfun$apply$1.apply(Execute.scala:237)
    at sbt.ErrorHandling$.wideConvert(ErrorHandling.scala:18)
    at sbt.Execute.work(Execute.scala:244)
    at sbt.Execute$$anonfun$submit$1.apply(Execute.scala:237)
    at sbt.Execute$$anonfun$submit$1.apply(Execute.scala:237)
    at sbt.ConcurrentRestrictions$$anon$4$$anonfun$1.apply(ConcurrentRestrictions.scala:160)
    at sbt.CompletionService$$anon$2.call(CompletionService.scala:30)
    at java.util.concurrent.FutureTask.run(FutureTask.java:262)
    at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:471)
    at java.util.concurrent.FutureTask.run(FutureTask.java:262)
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
    at java.lang.Thread.run(Thread.java:744)
[error] (compile:copyResources) Error wrapping InputStream in GZIPInputStream: java.io.EOFException
Project loading failed: (r)etry, (q)uit, (l)ast, or (i)gnore? q

What can be the root cause of the issue?

Answer

Jacek Laskowski picture Jacek Laskowski · Dec 3, 2013

It appears that the exception has been due to some problems with the local repo. After cleanup, e.g. removing target directories from ~/.sbt directory it's now working fine.

jacek:~/.sbt
$ find . -name target | xargs rm -rf

jacek:~/sandbox/stackoverflow/testaaa
$ sbt
[info] Loading global plugins from /Users/jacek/.sbt/0.13/plugins
[info] Updating {file:/Users/jacek/.sbt/0.13/plugins/}global-plugins...
[info] Resolving org.fusesource.jansi#jansi;1.4 ...
[info] Done updating.
[info] Set current project to testaaa (in build file:/Users/jacek/sandbox/stackoverflow/testaaa/)
[testaaa]>

I found the solution in the thread [2.1.1] SBT: InputStream in GZIPInputStream: java.io.EOFException in the play-framework forum.


I was also told that the issue goes away after removing all target directories in the project's home directory, e.g. target, project/target.

jacek:my-project-path
$ find . -name target | xargs rm -rf