DataDog / datadog-for-intellij-platform

Datadog for IntelliJ IDEA
https://docs.datadoghq.com/developers/ide_integrations/idea/
Other
5 stars 0 forks source link

[BUG] Can't log in with a custom subdomain / child organization #9

Closed mgillis closed 1 year ago

mgillis commented 1 year ago

Describe the bug

Can't log in with a custom subdomain / child organization.

## Steps To Reproduce

First way:

  1. Anywhere the option comes up in IntelliJ, click "Login with Custom Subdomain".
  2. Enter a custom subdomain
  3. Log in, click "Authorize"
  4. See error in the browser.

Second way:

  1. Anywhere the option comes up, click "Login with Datadog"
  2. In the browser, choose any organization that is not your parent organization.
  3. Log in, click "Authorize"
  4. See error in the browser.

URL: http://127.0.0.1:63342/api/datadog/oauth/authorization_code?code=<a code>

image image image

Expected Behavior

I think I should be able to log in with a child organization. (But to be honest it isn't essential because we plan to move our service data to the parent organization in the next few months.)

What versions of software are you using?

abrooksv commented 1 year ago

Thank you for the bug report.

In order to narrow down the issue, can you check which of these URL keys are missing from the URL (the 127.0.0.1 one):

mgillis commented 1 year ago

The only query parameter in the URL was 'code'.

On Sat., Apr. 1, 2023, 11:48 Austin Brooks, @.***> wrote:

Thank you for the bug report.

In order to narrow down the issue, can you check which of these URL keys are missing from the URL (the 127.0.0.1 one):

  • code
  • dd_oid
  • dd_org_name
  • site

— Reply to this email directly, view it on GitHub https://github.com/DataDog/datadog-for-intellij/issues/9#issuecomment-1493014506, or unsubscribe https://github.com/notifications/unsubscribe-auth/AAKFWQGFINSROLNMNDZR4JLW7BE6NANCNFSM6AAAAAAWPLTFFA . You are receiving this because you authored the thread.Message ID: @.***>

abrooksv commented 1 year ago

Hey @mgillis,

We have identified and deployed a backend fix with OAuth login that could have led to the behavior you reported. When you get a chance, can you please try to login again?

mgillis commented 1 year ago

@abrooksv Login to Datadog option resulted with this in the window displayed inside the browser: class kotlin.Result$Failure cannot be cast to class com.datadog.intellij.auth.oauth.OAuthCredentials (kotlin.Result$Failure and com.datadog.intellij.auth.oauth.OAuthCredentials are in unnamed module of loader com.intellij.ide.plugins.cl.PluginClassLoader @5e757a53)

URL was http://127.0.0.1:63342/api/datadog/oauth/authorization_code?code=<removed>&client_id=2a900828-7ca9-11ed-993e-da7ad0900002&site=https%3A%2F%2Fci_plat_s4hq_com.datadoghq.com&dd_oid=47593f6e-3538-11ed-8d39-da7ad0900002&dd_org_name=Labbit%3A+ci.plat.s4hq.com

Login with Custom Subdomain option: class kotlin.Result$Failure cannot be cast to class com.datadog.intellij.auth.oauth.OAuthCredentials (kotlin.Result$Failure and com.datadog.intellij.auth.oauth.OAuthCredentials are in unnamed module of loader com.intellij.ide.plugins.cl.PluginClassLoader @5e757a53)

URL: http://127.0.0.1:63342/api/datadog/oauth/authorization_code?code=<removed>&client_id=2a900828-7ca9-11ed-993e-da7ad0900002&site=https%3A%2F%2Fci_plat_s4hq_com.datadoghq.com&dd_oid=47593f6e-3538-11ed-8d39-da7ad0900002&dd_org_name=Labbit%3A+ci.plat.s4hq.com

abrooksv commented 1 year ago

Glad to to that the URL issue is resolved.

But the next issue... 😦

We saw this (Result$Failure cannot be cast...) sometimes with 2022.1 based IDEs due to incompatibilities with Kotlin versions and the libraries that ship with the IDE. We are actually planning on dropping support for 2022.1.X in our next release, partly due to some of these issues.

There may be an upstream error visible in the idea.log that led to the Result.Failure, but hard to say. You can find the idea.log file from Help->Show Log in Finder

mgillis commented 1 year ago

Ah ok. I don't mind upgrading. I almost just did. I think I will, unless you would like me to do more trials for you today?

Here's a full stack trace from the log:

2023-04-06 14:55:30,133 [11791426]   WARN - #c.d.i.a.o.OAuthLoginCallbackHandler - OAuth callback failed
java.lang.ClassCastException: class kotlin.Result$Failure cannot be cast to class com.datadog.intellij.auth.oauth.OAuthCredentials (kotlin.Result$Failure and com.datadog.intellij.auth.oauth.OAuthCredentials are in unnamed module of loader com.intellij.ide.plugins.cl.PluginClassLoader @5e757a53)
    at com.datadog.client.api.OAuthApi.exchangeAuthorizationCode-C0S1uFk(OAuthApi.kt:27)
    at com.datadog.intellij.auth.oauth.OAuthService.handleAuthorizationCallback(OAuthService.kt:107)
    at com.datadog.intellij.auth.oauth.OAuthLoginCallbackHandler.execute(OAuthLoginCallbackHandler.kt:30)
    at org.jetbrains.ide.RestService.process(RestService.kt:226)
    at org.jetbrains.io.DelegatingHttpRequestHandler$process$1.invoke(DelegatingHttpRequestHandler.kt:21)
    at org.jetbrains.io.DelegatingHttpRequestHandler$process$2.test(DelegatingHttpRequestHandler.kt:35)
    at org.jetbrains.io.DelegatingHttpRequestHandler$process$2.test(DelegatingHttpRequestHandler.kt:16)
    at com.intellij.openapi.extensions.impl.ExtensionProcessingHelper.lambda$findFirstSafe$0(ExtensionProcessingHelper.java:46)
    at com.intellij.openapi.extensions.impl.ExtensionProcessingHelper.computeSafeIfAny(ExtensionProcessingHelper.java:56)
    at com.intellij.openapi.extensions.impl.ExtensionProcessingHelper.findFirstSafe(ExtensionProcessingHelper.java:46)
    at com.intellij.openapi.extensions.ExtensionPointName.findFirstSafe(ExtensionPointName.java:50)
    at org.jetbrains.io.DelegatingHttpRequestHandler.process(DelegatingHttpRequestHandler.kt:34)
    at org.jetbrains.io.DelegatingHttpRequestHandlerBase.messageReceived(DelegatingHttpRequestHandlerBase.kt:15)
    at org.jetbrains.io.DelegatingHttpRequestHandlerBase.messageReceived(DelegatingHttpRequestHandlerBase.kt:11)
    at org.jetbrains.io.SimpleChannelInboundHandlerAdapter.channelRead0(SimpleChannelInboundHandlerAdapter.java:21)
    at io.netty.channel.SimpleChannelInboundHandler.channelRead(SimpleChannelInboundHandler.java:99)
    at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:379)
    at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:365)
    at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:357)
    at io.netty.handler.codec.http.cors.CorsHandler.channelRead(CorsHandler.java:95)
    at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:379)
    at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:365)
    at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:357)
    at io.netty.handler.codec.MessageToMessageDecoder.channelRead(MessageToMessageDecoder.java:103)
    at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:379)
    at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:365)
    at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:357)
    at io.netty.handler.codec.ByteToMessageDecoder.fireChannelRead(ByteToMessageDecoder.java:327)
    at io.netty.handler.codec.ByteToMessageDecoder.channelRead(ByteToMessageDecoder.java:299)
    at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:379)
    at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:365)
    at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:357)
    at org.jetbrains.io.PortUnificationServerHandler.decode(PortUnificationServerHandler.java:129)
    at org.jetbrains.io.PortUnificationServerHandler.messageReceived(PortUnificationServerHandler.java:76)
    at org.jetbrains.io.Decoder.channelRead(Decoder.java:24)
    at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:379)
    at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:365)
    at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:357)
    at io.netty.channel.DefaultChannelPipeline$HeadContext.channelRead(DefaultChannelPipeline.java:1410)
    at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:379)
    at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:365)
    at io.netty.channel.DefaultChannelPipeline.fireChannelRead(DefaultChannelPipeline.java:919)
    at io.netty.channel.nio.AbstractNioByteChannel$NioByteUnsafe.read(AbstractNioByteChannel.java:166)
    at io.netty.channel.nio.NioEventLoop.processSelectedKey(NioEventLoop.java:722)
    at io.netty.channel.nio.NioEventLoop.processSelectedKeysOptimized(NioEventLoop.java:658)
    at io.netty.channel.nio.NioEventLoop.processSelectedKeys(NioEventLoop.java:584)
    at io.netty.channel.nio.NioEventLoop.run(NioEventLoop.java:496)
    at io.netty.util.concurrent.SingleThreadEventExecutor$4.run(SingleThreadEventExecutor.java:986)
    at io.netty.util.internal.ThreadExecutorMap$2.run(ThreadExecutorMap.java:74)
    at io.netty.util.concurrent.FastThreadLocalRunnable.run(FastThreadLocalRunnable.java:30)
    at java.base/java.lang.Thread.run(Thread.java:829)
2023-04-06 14:55:30,135 [11791428]   WARN - #c.d.i.s.u.OAuthLoginDialog - Failed to login with OAuth
java.lang.RuntimeException: java.util.concurrent.ExecutionException: java.lang.ClassCastException: class kotlin.Result$Failure cannot be cast to class com.datadog.intellij.auth.oauth.OAuthCredentials (kotlin.Result$Failure and com.datadog.intellij.auth.oauth.OAuthCredentials are in unnamed module of loader com.intellij.ide.plugins.cl.PluginClassLoader @5e757a53)
    at com.intellij.util.ExceptionUtil.rethrow(ExceptionUtil.java:132)
    at com.intellij.openapi.progress.util.ProgressIndicatorUtils.awaitWithCheckCanceled(ProgressIndicatorUtils.java:376)
    at com.datadog.intellij.settings.ui.OAuthLoginDialog$startLogin$2.invoke(OAuthLoginDialog.kt:86)
    at com.datadog.intellij.settings.ui.OAuthLoginDialog$startLogin$2.invoke(OAuthLoginDialog.kt:78)
    at com.intellij.collaboration.async.CompletableFutureUtil$submitIOTask$1$1.compute(CompletableFutureUtil.kt:50)
    at com.intellij.openapi.progress.ProgressManager.lambda$runProcess$0(ProgressManager.java:58)
    at com.intellij.openapi.progress.impl.CoreProgressManager.lambda$runProcess$2(CoreProgressManager.java:189)
    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:176)
    at com.intellij.openapi.progress.ProgressManager.runProcess(ProgressManager.java:58)
    at com.intellij.collaboration.async.CompletableFutureUtil$submitIOTask$1.get(CompletableFutureUtil.kt:50)
    at java.base/java.util.concurrent.CompletableFuture$AsyncSupply.run(CompletableFuture.java:1700)
    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.util.concurrent.Executors$PrivilegedThreadFactory$1$1.run(Executors.java:668)
    at java.base/java.util.concurrent.Executors$PrivilegedThreadFactory$1$1.run(Executors.java:665)
    at java.base/java.security.AccessController.doPrivileged(Native Method)
    at java.base/java.util.concurrent.Executors$PrivilegedThreadFactory$1.run(Executors.java:665)
    at java.base/java.lang.Thread.run(Thread.java:829)
Caused by: java.util.concurrent.ExecutionException: java.lang.ClassCastException: class kotlin.Result$Failure cannot be cast to class com.datadog.intellij.auth.oauth.OAuthCredentials (kotlin.Result$Failure and com.datadog.intellij.auth.oauth.OAuthCredentials are in unnamed module of loader com.intellij.ide.plugins.cl.PluginClassLoader @5e757a53)
    at java.base/java.util.concurrent.CompletableFuture.reportGet(CompletableFuture.java:395)
    at java.base/java.util.concurrent.CompletableFuture.get(CompletableFuture.java:2022)
    at com.intellij.openapi.progress.util.ProgressIndicatorUtils.awaitWithCheckCanceled(ProgressIndicatorUtils.java:361)
    ... 21 more
Caused by: java.lang.ClassCastException: class kotlin.Result$Failure cannot be cast to class com.datadog.intellij.auth.oauth.OAuthCredentials (kotlin.Result$Failure and com.datadog.intellij.auth.oauth.OAuthCredentials are in unnamed module of loader com.intellij.ide.plugins.cl.PluginClassLoader @5e757a53)
    at com.datadog.client.api.OAuthApi.exchangeAuthorizationCode-C0S1uFk(OAuthApi.kt:27)
    at com.datadog.intellij.auth.oauth.OAuthService.handleAuthorizationCallback(OAuthService.kt:107)
    at com.datadog.intellij.auth.oauth.OAuthLoginCallbackHandler.execute(OAuthLoginCallbackHandler.kt:30)
    at org.jetbrains.ide.RestService.process(RestService.kt:226)
    at org.jetbrains.io.DelegatingHttpRequestHandler$process$1.invoke(DelegatingHttpRequestHandler.kt:21)
    at org.jetbrains.io.DelegatingHttpRequestHandler$process$2.test(DelegatingHttpRequestHandler.kt:35)
    at org.jetbrains.io.DelegatingHttpRequestHandler$process$2.test(DelegatingHttpRequestHandler.kt:16)
    at com.intellij.openapi.extensions.impl.ExtensionProcessingHelper.lambda$findFirstSafe$0(ExtensionProcessingHelper.java:46)
    at com.intellij.openapi.extensions.impl.ExtensionProcessingHelper.computeSafeIfAny(ExtensionProcessingHelper.java:56)
    at com.intellij.openapi.extensions.impl.ExtensionProcessingHelper.findFirstSafe(ExtensionProcessingHelper.java:46)
    at com.intellij.openapi.extensions.ExtensionPointName.findFirstSafe(ExtensionPointName.java:50)
    at org.jetbrains.io.DelegatingHttpRequestHandler.process(DelegatingHttpRequestHandler.kt:34)
    at org.jetbrains.io.DelegatingHttpRequestHandlerBase.messageReceived(DelegatingHttpRequestHandlerBase.kt:15)
    at org.jetbrains.io.DelegatingHttpRequestHandlerBase.messageReceived(DelegatingHttpRequestHandlerBase.kt:11)
    at org.jetbrains.io.SimpleChannelInboundHandlerAdapter.channelRead0(SimpleChannelInboundHandlerAdapter.java:21)
    at io.netty.channel.SimpleChannelInboundHandler.channelRead(SimpleChannelInboundHandler.java:99)
    at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:379)
    at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:365)
    at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:357)
    at io.netty.handler.codec.http.cors.CorsHandler.channelRead(CorsHandler.java:95)
    at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:379)
    at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:365)
    at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:357)
    at io.netty.handler.codec.MessageToMessageDecoder.channelRead(MessageToMessageDecoder.java:103)
    at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:379)
    at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:365)
    at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:357)
    at io.netty.handler.codec.ByteToMessageDecoder.fireChannelRead(ByteToMessageDecoder.java:327)
    at io.netty.handler.codec.ByteToMessageDecoder.channelRead(ByteToMessageDecoder.java:299)
    at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:379)
    at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:365)
    at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:357)
    at org.jetbrains.io.PortUnificationServerHandler.decode(PortUnificationServerHandler.java:129)
    at org.jetbrains.io.PortUnificationServerHandler.messageReceived(PortUnificationServerHandler.java:76)
    at org.jetbrains.io.Decoder.channelRead(Decoder.java:24)
    at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:379)
    at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:365)
    at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:357)
    at io.netty.channel.DefaultChannelPipeline$HeadContext.channelRead(DefaultChannelPipeline.java:1410)
    at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:379)
    at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:365)
    at io.netty.channel.DefaultChannelPipeline.fireChannelRead(DefaultChannelPipeline.java:919)
    at io.netty.channel.nio.AbstractNioByteChannel$NioByteUnsafe.read(AbstractNioByteChannel.java:166)
    at io.netty.channel.nio.NioEventLoop.processSelectedKey(NioEventLoop.java:722)
    at io.netty.channel.nio.NioEventLoop.processSelectedKeysOptimized(NioEventLoop.java:658)
    at io.netty.channel.nio.NioEventLoop.processSelectedKeys(NioEventLoop.java:584)
    at io.netty.channel.nio.NioEventLoop.run(NioEventLoop.java:496)
    at io.netty.util.concurrent.SingleThreadEventExecutor$4.run(SingleThreadEventExecutor.java:986)
    at io.netty.util.internal.ThreadExecutorMap$2.run(ThreadExecutorMap.java:74)
    at io.netty.util.concurrent.FastThreadLocalRunnable.run(FastThreadLocalRunnable.java:30)
    ... 1 more
abrooksv commented 1 year ago

I think you can go ahead and upgrade, the cast issue has only been seen due to old versions of Kotlin stdlib and coroutines libs with 2022.1.

If there was an underlying issue, the cast exception probably clobbered it so its impossible to find now.

If you see issues logging in with newer IDE versions, please let me know.

mgillis commented 1 year ago

Well, now I have another problem.... thanks for the help so far.

IntelliJ IDEA 2023.1 (Ultimate Edition) Build #IU-231.8109.175, built on March 28, 2023 Plugin 0.6.4 still

(I apologize in advance if this is because of the underscores in our hostnames)

URL: http://127.0.0.1:63342/api/datadog/oauth/authorization_code?code=<removed>&client_id=2a900828-7ca9-11ed-993e-da7ad0900002&site=https%3A%2F%2Fci_plat_s4hq_com.datadoghq.com&dd_oid=47593f6e-3538-11ed-8d39-da7ad0900002&dd_org_name=Labbit%3A+ci.plat.s4hq.com

Error in browser: unsupported URI https://ci_plat_s4hq_com.datadoghq.com/oauth2/v1/token

2023-04-06 18:39:01,161 [ 173465]   INFO - #c.i.i.p.PluginManager - Cannot find plugin org.jetbrains.java.decompiler resource-bundle: messages.IdeaDecompilerBundle
2023-04-06 18:39:13,859 [ 186163]   WARN - #com.datadog.intellij.settings.ui.OAuthLoginDialog - Failed to login with OAuth
java.lang.RuntimeException: java.util.concurrent.ExecutionException: com.datadog.client.ApiException: unsupported URI https://ci_plat_s4hq_com.datadoghq.com/oauth2/v1/token
    at com.intellij.util.ExceptionUtil.rethrow(ExceptionUtil.java:132)
    at com.intellij.openapi.progress.util.ProgressIndicatorUtils.awaitWithCheckCanceled(ProgressIndicatorUtils.java:347)
    at com.datadog.intellij.settings.ui.OAuthLoginDialog$startLogin$2.invoke(OAuthLoginDialog.kt:86)
    at com.datadog.intellij.settings.ui.OAuthLoginDialog$startLogin$2.invoke(OAuthLoginDialog.kt:78)
    at com.intellij.collaboration.async.CompletableFutureUtil.submitIOTask$lambda$1$lambda$0(CompletableFutureUtil.kt:58)
    at com.intellij.openapi.progress.ProgressManager.lambda$runProcess$1(ProgressManager.java:70)
    at com.intellij.openapi.progress.impl.CoreProgressManager.lambda$runProcess$2(CoreProgressManager.java:186)
    at com.intellij.openapi.progress.impl.CoreProgressManager.lambda$executeProcessUnderProgress$13(CoreProgressManager.java:604)
    at com.intellij.openapi.progress.impl.CoreProgressManager.registerIndicatorAndRun(CoreProgressManager.java:679)
    at com.intellij.openapi.progress.impl.CoreProgressManager.computeUnderProgress(CoreProgressManager.java:635)
    at com.intellij.openapi.progress.impl.CoreProgressManager.executeProcessUnderProgress(CoreProgressManager.java:603)
    at com.intellij.openapi.progress.impl.ProgressManagerImpl.executeProcessUnderProgress(ProgressManagerImpl.java:60)
    at com.intellij.openapi.progress.impl.CoreProgressManager.runProcess(CoreProgressManager.java:173)
    at com.intellij.openapi.progress.ProgressManager.runProcess(ProgressManager.java:70)
    at com.intellij.collaboration.async.CompletableFutureUtil.submitIOTask$lambda$1(CompletableFutureUtil.kt:58)
    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)
Caused by: java.util.concurrent.ExecutionException: com.datadog.client.ApiException: unsupported URI https://ci_plat_s4hq_com.datadoghq.com/oauth2/v1/token
    at java.base/java.util.concurrent.CompletableFuture.reportGet(CompletableFuture.java:396)
    at java.base/java.util.concurrent.CompletableFuture.get(CompletableFuture.java:2096)
    at com.intellij.openapi.progress.util.ProgressIndicatorUtils.awaitWithCheckCanceled(ProgressIndicatorUtils.java:332)
    ... 21 more
Caused by: com.datadog.client.ApiException: unsupported URI https://ci_plat_s4hq_com.datadoghq.com/oauth2/v1/token
    at com.datadog.client.ErrorMapper$installErrorMapper$1$2.invokeSuspend(ErrorMapper.kt:29)
    at com.datadog.client.ErrorMapper$installErrorMapper$1$2.invoke(ErrorMapper.kt)
    at com.datadog.client.ErrorMapper$installErrorMapper$1$2.invoke(ErrorMapper.kt)
    at io.ktor.client.plugins.HttpCallValidator.processException(HttpCallValidator.kt:59)
    at io.ktor.client.plugins.HttpCallValidator.access$processException(HttpCallValidator.kt:43)
    at io.ktor.client.plugins.HttpCallValidator$Companion$install$1.invokeSuspend(HttpCallValidator.kt:133)
    at kotlin.coroutines.jvm.internal.BaseContinuationImpl.resumeWith(ContinuationImpl.kt:33)
    at kotlinx.coroutines.DispatchedTask.run(DispatchedTask.kt:104)
    at kotlinx.coroutines.EventLoopImplBase.processNextEvent(EventLoop.common.kt:284)
    at kotlinx.coroutines.BlockingCoroutine.joinBlocking(Builders.kt:85)
    at kotlinx.coroutines.BuildersKt__BuildersKt.runBlocking(Builders.kt:59)
    at kotlinx.coroutines.BuildersKt.runBlocking(Unknown Source)
    at kotlinx.coroutines.BuildersKt__BuildersKt.runBlocking$default(Builders.kt:38)
    at kotlinx.coroutines.BuildersKt.runBlocking$default(Unknown Source)
    at com.datadog.client.api.OAuthApi.exchangeAuthorizationCode-C0S1uFk(OAuthApi.kt:27)
    at com.datadog.intellij.auth.oauth.OAuthService.handleAuthorizationCallback(OAuthService.kt:107)
    at com.datadog.intellij.auth.oauth.OAuthLoginCallbackHandler.execute(OAuthLoginCallbackHandler.kt:30)
    at org.jetbrains.ide.RestService.process(RestService.kt:231)
    at org.jetbrains.io.DelegatingHttpRequestHandler.process$checkAndProcess(DelegatingHttpRequestHandler.kt:21)
    at org.jetbrains.io.DelegatingHttpRequestHandler.access$process$checkAndProcess(DelegatingHttpRequestHandler.kt:15)
    at org.jetbrains.io.DelegatingHttpRequestHandler$process$1.invoke(DelegatingHttpRequestHandler.kt:35)
    at org.jetbrains.io.DelegatingHttpRequestHandler$process$1.invoke(DelegatingHttpRequestHandler.kt:34)
    at org.jetbrains.io.DelegatingHttpRequestHandler.process$lambda$0(DelegatingHttpRequestHandler.kt:34)
    at com.intellij.openapi.extensions.impl.ExtensionProcessingHelper.findFirstSafe$lambda$0(ExtensionProcessingHelper.kt:47)
    at com.intellij.openapi.extensions.impl.ExtensionProcessingHelper.computeSafeIfAny(ExtensionProcessingHelper.kt:57)
    at com.intellij.openapi.extensions.impl.ExtensionProcessingHelper.findFirstSafe(ExtensionProcessingHelper.kt:47)
    at com.intellij.openapi.extensions.ExtensionPointName.findFirstSafe(ExtensionPointName.kt:53)
    at org.jetbrains.io.DelegatingHttpRequestHandler.process(DelegatingHttpRequestHandler.kt:34)
    at org.jetbrains.io.DelegatingHttpRequestHandlerBase.messageReceived(DelegatingHttpRequestHandlerBase.kt:15)
    at org.jetbrains.io.DelegatingHttpRequestHandlerBase.messageReceived(DelegatingHttpRequestHandlerBase.kt:11)
    at org.jetbrains.io.SimpleChannelInboundHandlerAdapter.channelRead0(SimpleChannelInboundHandlerAdapter.java:21)
    at io.netty.channel.SimpleChannelInboundHandler.channelRead(SimpleChannelInboundHandler.java:99)
    at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:444)
    at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:420)
    at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:412)
    at io.netty.handler.codec.http.cors.CorsHandler.channelRead(CorsHandler.java:95)
    at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:442)
    at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:420)
    at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:412)
    at io.netty.handler.codec.MessageToMessageDecoder.channelRead(MessageToMessageDecoder.java:103)
    at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:444)
    at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:420)
    at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:412)
    at io.netty.handler.codec.ByteToMessageDecoder.fireChannelRead(ByteToMessageDecoder.java:346)
    at io.netty.handler.codec.ByteToMessageDecoder.channelRead(ByteToMessageDecoder.java:318)
    at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:444)
    at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:420)
    at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:412)
    at org.jetbrains.io.PortUnificationServerHandler.decode(PortUnificationServerHandler.java:128)
    at org.jetbrains.io.PortUnificationServerHandler.messageReceived(PortUnificationServerHandler.java:76)
    at org.jetbrains.io.Decoder.channelRead(Decoder.java:23)
    at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:444)
    at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:420)
    at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:412)
    at io.netty.channel.DefaultChannelPipeline$HeadContext.channelRead(DefaultChannelPipeline.java:1410)
    at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:440)
    at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:420)
    at io.netty.channel.DefaultChannelPipeline.fireChannelRead(DefaultChannelPipeline.java:919)
    at io.netty.channel.nio.AbstractNioByteChannel$NioByteUnsafe.read(AbstractNioByteChannel.java:166)
    at io.netty.channel.nio.NioEventLoop.processSelectedKey(NioEventLoop.java:788)
    at io.netty.channel.nio.NioEventLoop.processSelectedKeysOptimized(NioEventLoop.java:724)
    at io.netty.channel.nio.NioEventLoop.processSelectedKeys(NioEventLoop.java:650)
    at io.netty.channel.nio.NioEventLoop.run(NioEventLoop.java:562)
    at io.netty.util.concurrent.SingleThreadEventExecutor$4.run(SingleThreadEventExecutor.java:997)
    at io.netty.util.internal.ThreadExecutorMap$2.run(ThreadExecutorMap.java:74)
    at io.netty.util.concurrent.FastThreadLocalRunnable.run(FastThreadLocalRunnable.java:30)
    ... 1 more
Caused by: java.lang.IllegalArgumentException: unsupported URI https://ci_plat_s4hq_com.datadoghq.com/oauth2/v1/token
    at java.net.http/jdk.internal.net.http.common.Utils.newIAE(Utils.java:286)
    at java.net.http/jdk.internal.net.http.HttpRequestBuilderImpl.checkURI(HttpRequestBuilderImpl.java:85)
    at java.net.http/jdk.internal.net.http.HttpRequestBuilderImpl.<init>(HttpRequestBuilderImpl.java:55)
    at java.net.http/java.net.http.HttpRequest.newBuilder(HttpRequest.java:305)
    at io.ktor.client.engine.java.JavaHttpRequestKt.convertToHttpRequest(JavaHttpRequest.kt:40)
    at io.ktor.client.engine.java.JavaHttpResponseKt.executeHttpRequest(JavaHttpResponse.kt:17)
    at io.ktor.client.engine.java.JavaHttpEngine.execute(JavaHttpEngine.kt:63)
    at io.ktor.client.engine.HttpClientEngine$executeWithinCallContext$2.invokeSuspend(HttpClientEngine.kt:99)
    at kotlin.coroutines.jvm.internal.BaseContinuationImpl.resumeWith(ContinuationImpl.kt:33)
    at kotlinx.coroutines.DispatchedTask.run(DispatchedTask.kt:106)
    at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1136)
    at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:635)
    ... 1 more
2023-04-06 18:39:13,861 [ 186165]   WARN - #com.datadog.intellij.auth.oauth.OAuthLoginCallbackHandler - OAuth callback failed
com.datadog.client.ApiException: unsupported URI https://ci_plat_s4hq_com.datadoghq.com/oauth2/v1/token
    at com.datadog.client.ErrorMapper$installErrorMapper$1$2.invokeSuspend(ErrorMapper.kt:29)
    at com.datadog.client.ErrorMapper$installErrorMapper$1$2.invoke(ErrorMapper.kt)
    at com.datadog.client.ErrorMapper$installErrorMapper$1$2.invoke(ErrorMapper.kt)
    at io.ktor.client.plugins.HttpCallValidator.processException(HttpCallValidator.kt:59)
    at io.ktor.client.plugins.HttpCallValidator.access$processException(HttpCallValidator.kt:43)
    at io.ktor.client.plugins.HttpCallValidator$Companion$install$1.invokeSuspend(HttpCallValidator.kt:133)
    at kotlin.coroutines.jvm.internal.BaseContinuationImpl.resumeWith(ContinuationImpl.kt:33)
    at kotlinx.coroutines.DispatchedTask.run(DispatchedTask.kt:104)
    at kotlinx.coroutines.EventLoopImplBase.processNextEvent(EventLoop.common.kt:284)
    at kotlinx.coroutines.BlockingCoroutine.joinBlocking(Builders.kt:85)
    at kotlinx.coroutines.BuildersKt__BuildersKt.runBlocking(Builders.kt:59)
    at kotlinx.coroutines.BuildersKt.runBlocking(Unknown Source)
    at kotlinx.coroutines.BuildersKt__BuildersKt.runBlocking$default(Builders.kt:38)
    at kotlinx.coroutines.BuildersKt.runBlocking$default(Unknown Source)
    at com.datadog.client.api.OAuthApi.exchangeAuthorizationCode-C0S1uFk(OAuthApi.kt:27)
    at com.datadog.intellij.auth.oauth.OAuthService.handleAuthorizationCallback(OAuthService.kt:107)
    at com.datadog.intellij.auth.oauth.OAuthLoginCallbackHandler.execute(OAuthLoginCallbackHandler.kt:30)
    at org.jetbrains.ide.RestService.process(RestService.kt:231)
    at org.jetbrains.io.DelegatingHttpRequestHandler.process$checkAndProcess(DelegatingHttpRequestHandler.kt:21)
    at org.jetbrains.io.DelegatingHttpRequestHandler.access$process$checkAndProcess(DelegatingHttpRequestHandler.kt:15)
    at org.jetbrains.io.DelegatingHttpRequestHandler$process$1.invoke(DelegatingHttpRequestHandler.kt:35)
    at org.jetbrains.io.DelegatingHttpRequestHandler$process$1.invoke(DelegatingHttpRequestHandler.kt:34)
    at org.jetbrains.io.DelegatingHttpRequestHandler.process$lambda$0(DelegatingHttpRequestHandler.kt:34)
    at com.intellij.openapi.extensions.impl.ExtensionProcessingHelper.findFirstSafe$lambda$0(ExtensionProcessingHelper.kt:47)
    at com.intellij.openapi.extensions.impl.ExtensionProcessingHelper.computeSafeIfAny(ExtensionProcessingHelper.kt:57)
    at com.intellij.openapi.extensions.impl.ExtensionProcessingHelper.findFirstSafe(ExtensionProcessingHelper.kt:47)
    at com.intellij.openapi.extensions.ExtensionPointName.findFirstSafe(ExtensionPointName.kt:53)
    at org.jetbrains.io.DelegatingHttpRequestHandler.process(DelegatingHttpRequestHandler.kt:34)
    at org.jetbrains.io.DelegatingHttpRequestHandlerBase.messageReceived(DelegatingHttpRequestHandlerBase.kt:15)
    at org.jetbrains.io.DelegatingHttpRequestHandlerBase.messageReceived(DelegatingHttpRequestHandlerBase.kt:11)
    at org.jetbrains.io.SimpleChannelInboundHandlerAdapter.channelRead0(SimpleChannelInboundHandlerAdapter.java:21)
    at io.netty.channel.SimpleChannelInboundHandler.channelRead(SimpleChannelInboundHandler.java:99)
    at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:444)
    at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:420)
    at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:412)
    at io.netty.handler.codec.http.cors.CorsHandler.channelRead(CorsHandler.java:95)
    at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:442)
    at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:420)
    at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:412)
    at io.netty.handler.codec.MessageToMessageDecoder.channelRead(MessageToMessageDecoder.java:103)
    at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:444)
    at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:420)
    at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:412)
    at io.netty.handler.codec.ByteToMessageDecoder.fireChannelRead(ByteToMessageDecoder.java:346)
    at io.netty.handler.codec.ByteToMessageDecoder.channelRead(ByteToMessageDecoder.java:318)
    at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:444)
    at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:420)
    at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:412)
    at org.jetbrains.io.PortUnificationServerHandler.decode(PortUnificationServerHandler.java:128)
    at org.jetbrains.io.PortUnificationServerHandler.messageReceived(PortUnificationServerHandler.java:76)
    at org.jetbrains.io.Decoder.channelRead(Decoder.java:23)
    at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:444)
    at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:420)
    at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:412)
    at io.netty.channel.DefaultChannelPipeline$HeadContext.channelRead(DefaultChannelPipeline.java:1410)
    at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:440)
    at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:420)
    at io.netty.channel.DefaultChannelPipeline.fireChannelRead(DefaultChannelPipeline.java:919)
    at io.netty.channel.nio.AbstractNioByteChannel$NioByteUnsafe.read(AbstractNioByteChannel.java:166)
    at io.netty.channel.nio.NioEventLoop.processSelectedKey(NioEventLoop.java:788)
    at io.netty.channel.nio.NioEventLoop.processSelectedKeysOptimized(NioEventLoop.java:724)
    at io.netty.channel.nio.NioEventLoop.processSelectedKeys(NioEventLoop.java:650)
    at io.netty.channel.nio.NioEventLoop.run(NioEventLoop.java:562)
    at io.netty.util.concurrent.SingleThreadEventExecutor$4.run(SingleThreadEventExecutor.java:997)
    at io.netty.util.internal.ThreadExecutorMap$2.run(ThreadExecutorMap.java:74)
    at io.netty.util.concurrent.FastThreadLocalRunnable.run(FastThreadLocalRunnable.java:30)
    at java.base/java.lang.Thread.run(Thread.java:833)
Caused by: java.lang.IllegalArgumentException: unsupported URI https://ci_plat_s4hq_com.datadoghq.com/oauth2/v1/token
    at java.net.http/jdk.internal.net.http.common.Utils.newIAE(Utils.java:286)
    at java.net.http/jdk.internal.net.http.HttpRequestBuilderImpl.checkURI(HttpRequestBuilderImpl.java:85)
    at java.net.http/jdk.internal.net.http.HttpRequestBuilderImpl.<init>(HttpRequestBuilderImpl.java:55)
    at java.net.http/java.net.http.HttpRequest.newBuilder(HttpRequest.java:305)
    at io.ktor.client.engine.java.JavaHttpRequestKt.convertToHttpRequest(JavaHttpRequest.kt:40)
    at io.ktor.client.engine.java.JavaHttpResponseKt.executeHttpRequest(JavaHttpResponse.kt:17)
    at io.ktor.client.engine.java.JavaHttpEngine.execute(JavaHttpEngine.kt:63)
    at io.ktor.client.engine.HttpClientEngine$executeWithinCallContext$2.invokeSuspend(HttpClientEngine.kt:99)
    at kotlin.coroutines.jvm.internal.BaseContinuationImpl.resumeWith(ContinuationImpl.kt:33)
    at kotlinx.coroutines.DispatchedTask.run(DispatchedTask.kt:106)
    at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1136)
    at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:635)
    ... 1 more
2023-04-06 18:39:34,897 [ 207201]   WARN - #com.datadog.intellij.auth.oauth.OAuthLoginCallbackHandler - OAuth callback failed
com.datadog.client.ApiException: unsupported URI https://ci_plat_s4hq_com.datadoghq.com/oauth2/v1/token
    at com.datadog.client.ErrorMapper$installErrorMapper$1$2.invokeSuspend(ErrorMapper.kt:29)
    at com.datadog.client.ErrorMapper$installErrorMapper$1$2.invoke(ErrorMapper.kt)
    at com.datadog.client.ErrorMapper$installErrorMapper$1$2.invoke(ErrorMapper.kt)
    at io.ktor.client.plugins.HttpCallValidator.processException(HttpCallValidator.kt:59)
    at io.ktor.client.plugins.HttpCallValidator.access$processException(HttpCallValidator.kt:43)
    at io.ktor.client.plugins.HttpCallValidator$Companion$install$1.invokeSuspend(HttpCallValidator.kt:133)
    at kotlin.coroutines.jvm.internal.BaseContinuationImpl.resumeWith(ContinuationImpl.kt:33)
    at kotlinx.coroutines.DispatchedTask.run(DispatchedTask.kt:104)
    at kotlinx.coroutines.EventLoopImplBase.processNextEvent(EventLoop.common.kt:284)
    at kotlinx.coroutines.BlockingCoroutine.joinBlocking(Builders.kt:85)
    at kotlinx.coroutines.BuildersKt__BuildersKt.runBlocking(Builders.kt:59)
    at kotlinx.coroutines.BuildersKt.runBlocking(Unknown Source)
    at kotlinx.coroutines.BuildersKt__BuildersKt.runBlocking$default(Builders.kt:38)
    at kotlinx.coroutines.BuildersKt.runBlocking$default(Unknown Source)
    at com.datadog.client.api.OAuthApi.exchangeAuthorizationCode-C0S1uFk(OAuthApi.kt:27)
    at com.datadog.intellij.auth.oauth.OAuthService.handleAuthorizationCallback(OAuthService.kt:107)
    at com.datadog.intellij.auth.oauth.OAuthLoginCallbackHandler.execute(OAuthLoginCallbackHandler.kt:30)
    at org.jetbrains.ide.RestService.process(RestService.kt:231)
    at org.jetbrains.io.DelegatingHttpRequestHandler.process$checkAndProcess(DelegatingHttpRequestHandler.kt:21)
    at org.jetbrains.io.DelegatingHttpRequestHandler.access$process$checkAndProcess(DelegatingHttpRequestHandler.kt:15)
    at org.jetbrains.io.DelegatingHttpRequestHandler$process$1.invoke(DelegatingHttpRequestHandler.kt:35)
    at org.jetbrains.io.DelegatingHttpRequestHandler$process$1.invoke(DelegatingHttpRequestHandler.kt:34)
    at org.jetbrains.io.DelegatingHttpRequestHandler.process$lambda$0(DelegatingHttpRequestHandler.kt:34)
    at com.intellij.openapi.extensions.impl.ExtensionProcessingHelper.findFirstSafe$lambda$0(ExtensionProcessingHelper.kt:47)
    at com.intellij.openapi.extensions.impl.ExtensionProcessingHelper.computeSafeIfAny(ExtensionProcessingHelper.kt:57)
    at com.intellij.openapi.extensions.impl.ExtensionProcessingHelper.findFirstSafe(ExtensionProcessingHelper.kt:47)
    at com.intellij.openapi.extensions.ExtensionPointName.findFirstSafe(ExtensionPointName.kt:53)
    at org.jetbrains.io.DelegatingHttpRequestHandler.process(DelegatingHttpRequestHandler.kt:34)
    at org.jetbrains.io.DelegatingHttpRequestHandlerBase.messageReceived(DelegatingHttpRequestHandlerBase.kt:15)
    at org.jetbrains.io.DelegatingHttpRequestHandlerBase.messageReceived(DelegatingHttpRequestHandlerBase.kt:11)
    at org.jetbrains.io.SimpleChannelInboundHandlerAdapter.channelRead0(SimpleChannelInboundHandlerAdapter.java:21)
    at io.netty.channel.SimpleChannelInboundHandler.channelRead(SimpleChannelInboundHandler.java:99)
    at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:444)
    at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:420)
    at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:412)
    at io.netty.handler.codec.http.cors.CorsHandler.channelRead(CorsHandler.java:95)
    at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:442)
    at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:420)
    at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:412)
    at io.netty.handler.codec.MessageToMessageDecoder.channelRead(MessageToMessageDecoder.java:103)
    at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:444)
    at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:420)
    at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:412)
    at io.netty.handler.codec.ByteToMessageDecoder.fireChannelRead(ByteToMessageDecoder.java:346)
    at io.netty.handler.codec.ByteToMessageDecoder.channelRead(ByteToMessageDecoder.java:318)
    at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:444)
    at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:420)
    at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:412)
    at io.netty.channel.DefaultChannelPipeline$HeadContext.channelRead(DefaultChannelPipeline.java:1410)
    at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:440)
    at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:420)
    at io.netty.channel.DefaultChannelPipeline.fireChannelRead(DefaultChannelPipeline.java:919)
    at io.netty.channel.nio.AbstractNioByteChannel$NioByteUnsafe.read(AbstractNioByteChannel.java:166)
    at io.netty.channel.nio.NioEventLoop.processSelectedKey(NioEventLoop.java:788)
    at io.netty.channel.nio.NioEventLoop.processSelectedKeysOptimized(NioEventLoop.java:724)
    at io.netty.channel.nio.NioEventLoop.processSelectedKeys(NioEventLoop.java:650)
    at io.netty.channel.nio.NioEventLoop.run(NioEventLoop.java:562)
    at io.netty.util.concurrent.SingleThreadEventExecutor$4.run(SingleThreadEventExecutor.java:997)
    at io.netty.util.internal.ThreadExecutorMap$2.run(ThreadExecutorMap.java:74)
    at io.netty.util.concurrent.FastThreadLocalRunnable.run(FastThreadLocalRunnable.java:30)
    at java.base/java.lang.Thread.run(Thread.java:833)
Caused by: java.lang.IllegalArgumentException: unsupported URI https://ci_plat_s4hq_com.datadoghq.com/oauth2/v1/token
    at java.net.http/jdk.internal.net.http.common.Utils.newIAE(Utils.java:286)
    at java.net.http/jdk.internal.net.http.HttpRequestBuilderImpl.checkURI(HttpRequestBuilderImpl.java:85)
    at java.net.http/jdk.internal.net.http.HttpRequestBuilderImpl.<init>(HttpRequestBuilderImpl.java:55)
    at java.net.http/java.net.http.HttpRequest.newBuilder(HttpRequest.java:305)
    at io.ktor.client.engine.java.JavaHttpRequestKt.convertToHttpRequest(JavaHttpRequest.kt:40)
    at io.ktor.client.engine.java.JavaHttpResponseKt.executeHttpRequest(JavaHttpResponse.kt:17)
    at io.ktor.client.engine.java.JavaHttpEngine.execute(JavaHttpEngine.kt:63)
    at io.ktor.client.engine.HttpClientEngine$executeWithinCallContext$2.invokeSuspend(HttpClientEngine.kt:99)
    at kotlin.coroutines.jvm.internal.BaseContinuationImpl.resumeWith(ContinuationImpl.kt:33)
    at kotlinx.coroutines.DispatchedTask.run(DispatchedTask.kt:106)
    at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1136)
    at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:635)
    ... 1 more
abrooksv commented 1 year ago

Hmmm. Converting KTor's URL to Java's URI using java.net.URI#URI(java.lang.String) has host as null so this call throws: https://github.com/openjdk/jdk/blob/master/src/java.net.http/share/classes/jdk/internal/net/http/HttpRequestBuilderImpl.java#L84-L86

Screenshot 2023-04-06 at 3 54 12 PM

It seems like a limitation of the JDK due to RFCs make it seem legal?

abrooksv commented 1 year ago

I can make calls to the subdomain with underscores using KTor with the OkHttp engine, and CIO engines. (https://ktor.io/docs/http-client-engines.html)

So the change would be for us to stop using the Java engine (Java HttpClient) move to either CIO or OkHttp. I will need to look into the ramifications of that to make sure that we still respect the IDE HTTP Proxy settings and SSL trust store settings for usage with proxies.

I will work on validating those requirements and discuss the changes with my team, please give me a few days to get back to you.

mgillis commented 1 year ago

Oh, that's a lot of work. I understand if it doesn't make the cut. I am trying to get us to migrate away from the underscore hosts anyway, but we will likely have them for another month or two or three at least, and we may not be the only ones.

Thanks for all the help and quick responses, it seems like an interesting plugin that I'd like to try soon.

abrooksv commented 1 year ago

Code has been merged, but will require 2022.3 or newer to work.

I'll post an update here when we do the next release.

abrooksv commented 1 year ago

Fix is in v0.6.5 which is now on GitHub and can be installed manually. Update on Marketplace is pending JB approval (usually takes up to 48 hours to be approved)

Closing this as fixed, please re-open if you continue to have issues. Thanks again for the bug report