SBT Error: "Failed to construct terminal; falling back to unsupported..."

Sbt

Sbt Problem Overview


I have run into an ERROR with SBT today. It can best be shown with the sbt sbt-version command:

Run on 5/29/17:

eric@linux-x2vq:~$ sbt sbt-version
Java HotSpot(TM) 64-Bit Server VM warning: ignoring option 
MaxPermSize=256M; support was removed in 8.0
[info] Set current project to eric (in build file:/home/eric/)
[info] 0.13.13

Run on 6/1/17:

eric@linux-x2vq:~$ sbt sbt-version
Java HotSpot(TM) 64-Bit Server VM warning: ignoring option             
MaxPermSize=256M; support was removed in 8.0
[ERROR] Failed to construct terminal; falling back to unsupported
java.lang.NumberFormatException: For input string: "0x100"
at java.lang.NumberFormatException.forInputString(NumberFormatException.java:65)
at java.lang.Integer.parseInt(Integer.java:580)
at java.lang.Integer.valueOf(Integer.java:766)
at jline.internal.InfoCmp.parseInfoCmp(InfoCmp.java:59)
at jline.UnixTerminal.parseInfoCmp(UnixTerminal.java:233)
at jline.UnixTerminal.<init>(UnixTerminal.java:64)
at jline.UnixTerminal.<init>(UnixTerminal.java:49)
at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62)
at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
at java.lang.reflect.Constructor.newInstance(Constructor.java:423)
at java.lang.Class.newInstance(Class.java:442)
at jline.TerminalFactory.getFlavor(TerminalFactory.java:209)
at jline.TerminalFactory.create(TerminalFactory.java:100)
at jline.TerminalFactory.get(TerminalFactory.java:184)
at jline.TerminalFactory.get(TerminalFactory.java:190)
at sbt.ConsoleLogger$.ansiSupported(ConsoleLogger.scala:123)
at sbt.ConsoleLogger$.<init>(ConsoleLogger.scala:117)
at sbt.ConsoleLogger$.<clinit>(ConsoleLogger.scala)
at sbt.GlobalLogging$.initial(GlobalLogging.scala:43)
at sbt.StandardMain$.initialGlobalLogging(Main.scala:64)
at sbt.StandardMain$.initialState(Main.scala:73)
at sbt.xMain.run(Main.scala:29)
at xsbt.boot.Launch$$anonfun$run$1.apply(Launch.scala:109)
at xsbt.boot.Launch$.withContextLoader(Launch.scala:128)
at xsbt.boot.Launch$.run(Launch.scala:109)
at xsbt.boot.Launch$$anonfun$apply$1.apply(Launch.scala:35)
at xsbt.boot.Launch$.launch(Launch.scala:117)
at xsbt.boot.Launch$.apply(Launch.scala:18)
at xsbt.boot.Boot$.runImpl(Boot.scala:41)
at xsbt.boot.Boot$.main(Boot.scala:17)
at xsbt.boot.Boot.main(Boot.scala)

[info] Set current project to eric (in build file:/home/eric/)
[info] 0.13.13

No changes (that I know of) to either my SBT or Java setup.

Any ideas on what might be causing this or how to fix the error?

Thank you!

Sbt Solutions


Solution 1 - Sbt

I had the same issue, especially when the TERM environment variable is set to xterm-256color. Setting it to a different value fixed the issue for me, e.g.

export TERM=xterm-color

Solution 2 - Sbt

I found the package which causes this issue: ncurses. I downgraded ncurses to version ncurses-6.0+20170429-1 (I am using Arch Linux) and SBT starts just fine.

Steps for Arch Linux:

cd /var/cache/pacman/pkg
sudo pacman -U ncurses-6.0+20170429-1-x86_64.pkg.tar.xz # or some other older version

Steps for Mac: see https://github.com/jline/jline2/issues/281

I think this issue was introduced with ncurses version 20170506, see: http://invisible-island.net/ncurses/NEWS.html#index-t20170506

+ modify tic/infocmp display of numeric values to use hexadecimal when
      they are "close" to a power of two, making the result more readable.

I filed an issue on the SBT issue tracker: https://github.com/sbt/sbt/issues/3240

Edit: SBT version 0.13.16 includes the fix for this problem.

Solution 3 - Sbt

You can add export TERM=xterm-color to the top of /usr/share/sbt/bin/sbt because $HOME/.sbtconfig is deprecated.

Solution 4 - Sbt

sbt command is just a script. It load $HOME/.sbtconfig at the very beginning, so just put

export TERM=xterm-color

as @user3113045 said in the conf file, sbt will work. In that case your other term commands will still use xterm-256color.

Solution 5 - Sbt

This resolved the issue in my case (Linux Users):

  1. Open your terminal
  2. Navigate to your project directory
  3. type "export TERM=xterm-color" in your terminal without the quotes
  4. Hit ENTER

That is all and then you are good to go.

Solution 6 - Sbt

One year passed... now it happened to me.


So, ncurses did change, and the corresponding sbt part was ...I guess... probably only implemented based on random guessed tests and observations/bugs and not any spec nor RFC. (So far, sbt is the only program with this ncurses issue that I know of.)

In case you can't simply upgrade sbt nor downgrade ncurses, you could change the TERM environment variable as mentioned in the other answers.

trivial fix:

If your sbt script is some bash script (most likely, unless you run DOS' .bat files)

$ file /usr/bin/sbt
/usr/bin/sbt: Bourne-Again shell script, ASCII text executable

, then it might suffice to add this workaround:

TERM="${TERM/xterm-256color/xterm-color}"

Solution 7 - Sbt

If you can, change sbt version in build.properties to higher. 13.16 work for me.

Solution 8 - Sbt

I can't write a comment as my score is too low, but user3113045's answer worked when I added export TERM=xterm-color to my .zshrc file

Solution 9 - Sbt

For Ubuntu 20.04 Users, Open your terminal and run the bellow CMDs

  • Go to this "/usr/share/sbt/bin" directory ( $ cd /usr/share/sbt/bin )
  • give the permission to edit file ( $ sudo chmod -R 777 sbt )
  • Open the sbt text file in this directory ( $ nano sbt )
  • Add this "export TERM=xterm-color" cmd in top and save ( Ctrl + X )

Ex:-

#!/usr/bin/env bash
export TERM=xterm-color
set +e

Solution 10 - Sbt

I faced this issue when i am using activator which uses sbt internally. I am using Ubuntu and this error was frustrating me. I started facing this issue when i ran

$ activator gen-idea (tool which as per the intellij is legacy)

After this i tried to delete all the cache that this tool generated.

I deleted the .ivy and .sbt directories from my home folder and ran the activator cleanFiles compile command which resolved my issue.

Categories
Recommended Sbt Solutions

Attributions

All content for this solution is sourced from the original question on Stackoverflow.

The content on this page is licensed under the Attribution-ShareAlike 4.0 International (CC BY-SA 4.0) license.

Content TypeOriginal AuthorOriginal Content on Stackoverflow
QuestionerickyView Question on Stackoverflow
Solution 1 - Sbtuser3113045View Answer on Stackoverflow
Solution 2 - SbtamuttschView Answer on Stackoverflow
Solution 3 - SbtMikhail ChugunkovView Answer on Stackoverflow
Solution 4 - SbtninjapapaView Answer on Stackoverflow
Solution 5 - SbtkeemsisiView Answer on Stackoverflow
Solution 6 - SbtcomonadView Answer on Stackoverflow
Solution 7 - SbtMajid HosseiniView Answer on Stackoverflow
Solution 8 - SbtPatrick WhiteView Answer on Stackoverflow
Solution 9 - SbtSahanView Answer on Stackoverflow
Solution 10 - SbtzeeView Answer on Stackoverflow