<?xml version="1.0" encoding="utf-8"?>
<feed xmlns="http://www.w3.org/2005/Atom"><title>The Wombelix Post - Learning</title><link href="https://dominik.wombacher.cc/" rel="alternate"/><link href="/feeds/tag_learning.atom.xml" rel="self"/><id>https://dominik.wombacher.cc/</id><updated>2022-09-09T00:00:00+02:00</updated><entry><title>Hyperskill EduTools Plugin "Solve in IDE" Button without response / does not open IDE</title><link href="https://dominik.wombacher.cc/posts/hyperskill-edutools-plugin-solve-in-ide-button-without-response-does-not-open-ide.html" rel="alternate"/><published>2022-09-09T00:00:00+02:00</published><updated>2022-09-09T00:00:00+02:00</updated><author><name>Dominik Wombacher</name></author><id>tag:dominik.wombacher.cc,2022-09-09:/posts/hyperskill-edutools-plugin-solve-in-ide-button-without-response-does-not-open-ide.html</id><summary type="html">&lt;!-- SPDX-FileCopyrightText: 2023 Dominik Wombacher &lt;dominik@wombacher.cc&gt; --&gt;
&lt;!--  --&gt;
&lt;!-- SPDX-License-Identifier: CC-BY-SA-4.0 --&gt;
&lt;p&gt;I'm using Hyperskill since a while, nice platform to learn Coding,
also with daily challenges which I love to solve.
Some of them are question based, others require actual programming  ... &lt;a class="read-more" href="/posts/hyperskill-edutools-plugin-solve-in-ide-button-without-response-does-not-open-ide.html"&gt; [read more]&lt;/a&gt;&lt;/p&gt;</summary><content type="html">&lt;!-- SPDX-FileCopyrightText: 2023 Dominik Wombacher &lt;dominik@wombacher.cc&gt; --&gt;
&lt;!--  --&gt;
&lt;!-- SPDX-License-Identifier: CC-BY-SA-4.0 --&gt;
&lt;p&gt;I'm using Hyperskill since a while, nice platform to learn Coding,
also with daily challenges which I love to solve.
Some of them are question based, others require actual programming
which can be done in a local installed IDE like &lt;em&gt;IntelliJ IDEA&lt;/em&gt;.&lt;/p&gt;
&lt;p&gt;With the installed &lt;strong&gt;EduTools Plugin&lt;/strong&gt;, you normally just hit the
&lt;code&gt;Solve in IDE&lt;/code&gt; Button on the Website and it will automatically
open the Challenge in your locally installed IDE.&lt;/p&gt;
&lt;p&gt;It wasn't working recently, nothing happened when clicking the button, no obvious error message.
I saw a lot of &lt;strong&gt;ERR_CONNECTION_REFUSED&lt;/strong&gt; message in the developer tools console,
but only found one issue in the
&lt;a class="reference external" href="https://youtrack.jetbrains.com/issue/EDU-3351"&gt;JetBrains Issue Tracker&lt;/a&gt;
(Archive: &lt;a class="reference external" href="https://archive.today/2022.09.09-145026/https://youtrack.jetbrains.com/issue/EDU-3351"&gt;[1]&lt;/a&gt;)
which was unfortunately not related to my problem.&lt;/p&gt;
&lt;p&gt;But it helped me to understand that I was just looking at the wrong place,
the &lt;strong&gt;EduTools Plugin&lt;/strong&gt; spins up a webserver listening on localhost,
but inside a port range, by default it's not predictable which port exactly.&lt;/p&gt;
&lt;p&gt;Technically, the Hyperskill page can't be aware about the used port,
it will just try all ports until the Plugin answers on one of them,
that's why &lt;strong&gt;ERR_CONNECTION_REFUSED&lt;/strong&gt; works as designed.&lt;/p&gt;
&lt;p&gt;The more interesting message was:&lt;/p&gt;
&lt;pre class="code text literal-block"&gt;
127.0.0.1:63342/api/edu/hyperskill?step_id=5012&amp;amp;language=java&amp;amp;user_id=xxxxxxx:1
Failed to load resource: the server responded with a status of 500 (Internal Server Error)

&lt;/pre&gt;
&lt;p&gt;So the connection to the Plugin, running on &lt;code&gt;127.0.0.1:63342&lt;/code&gt; was successful
but returned an error 500, the full message after opening the link in a Browser Tab:&lt;/p&gt;
&lt;pre class="code text literal-block"&gt;
500 Internal Server Error

java.lang.IllegalStateException:
Refresh token is null at com.jetbrains.edu.learning.api.EduOAuthConnector.getNewTokens(EduOAuthConnector.kt:152) at
com.jetbrains.edu.learning.api.EduOAuthConnector.refreshTokens(EduOAuthConnector.kt:187) at
com.jetbrains.edu.learning.api.EduOAuthConnector.access$refreshTokens(EduOAuthConnector.kt:26) at
com.jetbrains.edu.learning.stepik.hyperskill.api.HyperskillConnector.getUserInfo(HyperskillConnector.kt:395) at
com.jetbrains.edu.learning.stepik.hyperskill.api.HyperskillConnector.getUserInfo(HyperskillConnector.kt:35) at
com.jetbrains.edu.learning.api.EduOAuthConnector.getCurrentUserInfo(EduOAuthConnector.kt:122) at
com.jetbrains.edu.learning.stepik.hyperskill.HyperskillUtilsKt$getSelectedProjectIdUnderProgress$1.invoke(HyperskillUtils.kt:131) at
com.jetbrains.edu.learning.stepik.hyperskill.HyperskillUtilsKt$getSelectedProjectIdUnderProgress$1.invoke(HyperskillUtils.kt:130) at
com.jetbrains.edu.learning.OpenApiExtKt$computeUnderProgress$1.compute(openApiExt.kt:118) at
com.intellij.openapi.progress.Task$WithResult.run(Task.java:335) at
com.intellij.openapi.progress.impl.CoreProgressManager.startTask(CoreProgressManager.java:442) at
com.intellij.openapi.progress.impl.ProgressManagerImpl.startTask(ProgressManagerImpl.java:114) at
com.intellij.openapi.progress.impl.CoreProgressManager.lambda$runProcessWithProgressSynchronously$8(CoreProgressManager.java:526) at
com.intellij.openapi.progress.impl.ProgressRunner.lambda$new$0(ProgressRunner.java:84) at
com.intellij.openapi.progress.impl.ProgressRunner.lambda$submit$3(ProgressRunner.java:252) at
com.intellij.openapi.progress.impl.CoreProgressManager.lambda$runProcess$2(CoreProgressManager.java:188) at
com.intellij.openapi.progress.impl.CoreProgressManager.lambda$executeProcessUnderProgress$12(CoreProgressManager.java:608) at
com.intellij.openapi.progress.impl.CoreProgressManager.registerIndicatorAndRun(CoreProgressManager.java:683) at
com.intellij.openapi.progress.impl.CoreProgressManager.computeUnderProgress(CoreProgressManager.java:639) at
com.intellij.openapi.progress.impl.CoreProgressManager.executeProcessUnderProgress(CoreProgressManager.java:607) at
com.intellij.openapi.progress.impl.ProgressManagerImpl.executeProcessUnderProgress(ProgressManagerImpl.java:60) at
com.intellij.openapi.progress.impl.CoreProgressManager.runProcess(CoreProgressManager.java:175) at
com.intellij.openapi.progress.impl.ProgressRunner.lambda$submit$4(ProgressRunner.java:252) at
java.base/java.util.concurrent.CompletableFuture$AsyncSupply.run(CompletableFuture.java:1768) at
java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1136) at
java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:635) at
java.base/java.util.concurrent.Executors$PrivilegedThreadFactory$1$1.run(Executors.java:702) at
java.base/java.util.concurrent.Executors$PrivilegedThreadFactory$1$1.run(Executors.java:699) at
java.base/java.security.AccessController.doPrivileged(AccessController.java:399) at
java.base/java.util.concurrent.Executors$PrivilegedThreadFactory$1.run(Executors.java:699) at
java.base/java.lang.Thread.run(Thread.java:833)

&lt;/pre&gt;
&lt;p&gt;The error messages indicate that something with OAuth and Tokens (Authentication) went wrong,
maybe related to the expire of my trial license which I changed to a payed subscription?&lt;/p&gt;
&lt;p&gt;Simple logout and login from Hyperskill directly in ItelliJ IDE solved the issue, afterwards
I just refreshed the Website, clicked on the Button and the Challenge was opened in my IDE as expected.&lt;/p&gt;
&lt;p&gt;Was my first time that I had any issues with the platform and to be honest,
the Official Troubleshooting Guides and Issue Tracker were not really helpful to solve it :(&lt;/p&gt;
</content><category term="Code"/><category term="Learning"/><category term="Programming"/><category term="Hyperskill"/></entry></feed>