Repro: run "update haskell tools", observe empty error balloon
IntelliJ IDEA 2019.3.2
```
IntelliJ IDEA 2019.3.2 (Ultimate Edition)
Build #IU-193.6015.39, built on January 21, 2020
Licensed to Andrei Dziahel
You have a perpetual fallback license for this version
Subscription is active until February 4, 2021
Runtime version: 11.0.5+10-b520.30 amd64
VM: OpenJDK 64-Bit Server VM by JetBrains s.r.o
Linux 5.4.14-2-default
GC: ParNew, ConcurrentMarkSweep
Memory: 2014M
Cores: 4
Registry:
Non-Bundled Plugins: AceJump, com.intellij.plugins.watcher, BashSupport, Key Promoter X, PsiViewer, org.jetbrains.plugins.localization, Pythonid, VMOptions, com.dmarcotte.handlebars, com.eclectide.intellij.whatthecommit, com.intellij.lang.jsgraphql, com.jetbrains.php.framework, com.jetbrains.plugins.ini4idea, com.khmelyuk.multirun, com.shellcheck, de.achimonline.changelistorganizer, de.thomasrosenau.diffplugin, fossil4idea, in.twbs.pure, indent-rainbow.indent-rainbow, intellij.haskell, org.jetbrains.kotlin, izhangzhihao.rainbow.brackets, lermitage.intellij.extra.icons, lermitage.jetbrains.darcula.sombre, mobi.hsz.idea.gitignore, name.kropp.intellij.makefile, nb-mind-map-idea, net.masterthought.dlanguage, nix-idea, org.jetbrains.erlang, org.elixir_lang, org.elm.klazuka, org.elm.tools.external, org.intellij.plugins.postcss, org.intellij.scala, org.jetbrains.idea.grammar, org.jetbrains.plugins.slim, org.jetbrains.plugins.ruby, org.liamjwang.yamlconfig-idea.yamlconfig-idea, org.toml.lang, tanvd.grazi, org.rust.lang, org.turbanov.run.configuration.as.action, reasonml, ru.adelf.idea.dotenv, some.awesome
```
intellij-haskell 1.0b57
Stacktrace
```
java.lang.Throwable: Assertion failed: Notification should have title and/or content; groupId: Haskell Balloon
at com.intellij.openapi.diagnostic.Logger.assertTrue(Logger.java:180)
at com.intellij.notification.Notification.assertHasTitleOrContent(Notification.java:366)
at com.intellij.notification.Notifications$Bus.notify(Notifications.java:60)
at com.intellij.notification.Notification.notify(Notification.java:344)
at intellij.haskell.HaskellNotificationGroup$.log(HaskellNotificationGroup.scala:130)
at intellij.haskell.HaskellNotificationGroup$.balloonEvent(HaskellNotificationGroup.scala:125)
at intellij.haskell.HaskellNotificationGroup$.logErrorBalloonEvent(HaskellNotificationGroup.scala:74)
at intellij.haskell.external.execution.StackCommandLine$.$anonfun$installTool$1(StackCommandLine.scala:91)
at intellij.haskell.external.execution.StackCommandLine$.$anonfun$installTool$1$adapted(StackCommandLine.scala:83)
at scala.Option.exists(Option.scala:406)
at intellij.haskell.external.execution.StackCommandLine$.installTool(StackCommandLine.scala:83)
at intellij.haskell.external.component.StackProjectManager$$anon$1.isToolAvailable(StackProjectManager.scala:116)
at intellij.haskell.external.component.StackProjectManager$$anon$1.$anonfun$run$3(StackProjectManager.scala:134)
at intellij.haskell.external.component.StackProjectManager$$anon$1.$anonfun$run$3$adapted(StackProjectManager.scala:134)
at scala.Option.foreach(Option.scala:437)
at intellij.haskell.external.component.StackProjectManager$$anon$1.run(StackProjectManager.scala:134)
at com.intellij.openapi.progress.impl.CoreProgressManager$TaskRunnable.run(CoreProgressManager.java:888)
at com.intellij.openapi.progress.impl.CoreProgressManager.lambda$runProcess$2(CoreProgressManager.java:163)
at com.intellij.openapi.progress.impl.CoreProgressManager.registerIndicatorAndRun(CoreProgressManager.java:585)
at com.intellij.openapi.progress.impl.CoreProgressManager.executeProcessUnderProgress(CoreProgressManager.java:531)
at com.intellij.openapi.progress.impl.ProgressManagerImpl.executeProcessUnderProgress(ProgressManagerImpl.java:59)
at com.intellij.openapi.progress.impl.CoreProgressManager.runProcess(CoreProgressManager.java:150)
at com.intellij.openapi.progress.impl.CoreProgressManager$4.lambda$run$0(CoreProgressManager.java:402)
at com.intellij.util.ConcurrencyUtil.runUnderThreadName(ConcurrencyUtil.java:221)
at com.intellij.openapi.progress.impl.CoreProgressManager$4.run(CoreProgressManager.java:402)
at com.intellij.openapi.application.impl.ApplicationImpl$1.run(ApplicationImpl.java:238)
at java.base/java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:515)
at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264)
at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128)
at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628)
at java.base/java.lang.Thread.run(Thread.java:834)
```
Repro: run "update haskell tools", observe empty error balloon
IntelliJ IDEA 2019.3.2
``` IntelliJ IDEA 2019.3.2 (Ultimate Edition) Build #IU-193.6015.39, built on January 21, 2020 Licensed to Andrei Dziahel You have a perpetual fallback license for this version Subscription is active until February 4, 2021 Runtime version: 11.0.5+10-b520.30 amd64 VM: OpenJDK 64-Bit Server VM by JetBrains s.r.o Linux 5.4.14-2-default GC: ParNew, ConcurrentMarkSweep Memory: 2014M Cores: 4 Registry: Non-Bundled Plugins: AceJump, com.intellij.plugins.watcher, BashSupport, Key Promoter X, PsiViewer, org.jetbrains.plugins.localization, Pythonid, VMOptions, com.dmarcotte.handlebars, com.eclectide.intellij.whatthecommit, com.intellij.lang.jsgraphql, com.jetbrains.php.framework, com.jetbrains.plugins.ini4idea, com.khmelyuk.multirun, com.shellcheck, de.achimonline.changelistorganizer, de.thomasrosenau.diffplugin, fossil4idea, in.twbs.pure, indent-rainbow.indent-rainbow, intellij.haskell, org.jetbrains.kotlin, izhangzhihao.rainbow.brackets, lermitage.intellij.extra.icons, lermitage.jetbrains.darcula.sombre, mobi.hsz.idea.gitignore, name.kropp.intellij.makefile, nb-mind-map-idea, net.masterthought.dlanguage, nix-idea, org.jetbrains.erlang, org.elixir_lang, org.elm.klazuka, org.elm.tools.external, org.intellij.plugins.postcss, org.intellij.scala, org.jetbrains.idea.grammar, org.jetbrains.plugins.slim, org.jetbrains.plugins.ruby, org.liamjwang.yamlconfig-idea.yamlconfig-idea, org.toml.lang, tanvd.grazi, org.rust.lang, org.turbanov.run.configuration.as.action, reasonml, ru.adelf.idea.dotenv, some.awesome ```Stacktrace
``` java.lang.Throwable: Assertion failed: Notification should have title and/or content; groupId: Haskell Balloon at com.intellij.openapi.diagnostic.Logger.assertTrue(Logger.java:180) at com.intellij.notification.Notification.assertHasTitleOrContent(Notification.java:366) at com.intellij.notification.Notifications$Bus.notify(Notifications.java:60) at com.intellij.notification.Notification.notify(Notification.java:344) at intellij.haskell.HaskellNotificationGroup$.log(HaskellNotificationGroup.scala:130) at intellij.haskell.HaskellNotificationGroup$.balloonEvent(HaskellNotificationGroup.scala:125) at intellij.haskell.HaskellNotificationGroup$.logErrorBalloonEvent(HaskellNotificationGroup.scala:74) at intellij.haskell.external.execution.StackCommandLine$.$anonfun$installTool$1(StackCommandLine.scala:91) at intellij.haskell.external.execution.StackCommandLine$.$anonfun$installTool$1$adapted(StackCommandLine.scala:83) at scala.Option.exists(Option.scala:406) at intellij.haskell.external.execution.StackCommandLine$.installTool(StackCommandLine.scala:83) at intellij.haskell.external.component.StackProjectManager$$anon$1.isToolAvailable(StackProjectManager.scala:116) at intellij.haskell.external.component.StackProjectManager$$anon$1.$anonfun$run$3(StackProjectManager.scala:134) at intellij.haskell.external.component.StackProjectManager$$anon$1.$anonfun$run$3$adapted(StackProjectManager.scala:134) at scala.Option.foreach(Option.scala:437) at intellij.haskell.external.component.StackProjectManager$$anon$1.run(StackProjectManager.scala:134) at com.intellij.openapi.progress.impl.CoreProgressManager$TaskRunnable.run(CoreProgressManager.java:888) at com.intellij.openapi.progress.impl.CoreProgressManager.lambda$runProcess$2(CoreProgressManager.java:163) at com.intellij.openapi.progress.impl.CoreProgressManager.registerIndicatorAndRun(CoreProgressManager.java:585) at com.intellij.openapi.progress.impl.CoreProgressManager.executeProcessUnderProgress(CoreProgressManager.java:531) at com.intellij.openapi.progress.impl.ProgressManagerImpl.executeProcessUnderProgress(ProgressManagerImpl.java:59) at com.intellij.openapi.progress.impl.CoreProgressManager.runProcess(CoreProgressManager.java:150) at com.intellij.openapi.progress.impl.CoreProgressManager$4.lambda$run$0(CoreProgressManager.java:402) at com.intellij.util.ConcurrencyUtil.runUnderThreadName(ConcurrencyUtil.java:221) at com.intellij.openapi.progress.impl.CoreProgressManager$4.run(CoreProgressManager.java:402) at com.intellij.openapi.application.impl.ApplicationImpl$1.run(ApplicationImpl.java:238) at java.base/java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:515) at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264) at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128) at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628) at java.base/java.lang.Thread.run(Thread.java:834) ```