Aws-toolkit-jetbrains: Unable to connect to AWS - SdkClientException: Unable to load region

Created on 3 Jan 2019  路  4Comments  路  Source: aws/aws-toolkit-jetbrains

After producing a local build from master (1e894c6) and installing into IntelliJ, getting error regarding region (despite region set correctly to eu-west-1).

To reproduce

  1. Manually install plugin
  2. Open previously configured AWS project
  3. Attempt to connect to AWS

Expected behavior
AWS connection successful. Lambda functions shows in AWS explorer.

Screenshots
_See stacktrace below._

Your Environment

  • OS: Windows 10 Pro
  • JetBrains' Product: IntelliJ
  • JetBrains' Product Version: IntelliJ IDEA 2018.3.1 (Community Edition)
    Build #IC-183.4588.61, built on December 4, 2018
    JRE: 1.8.0_152-release-1343-b16 amd64
    JVM: OpenJDK 64-Bit Server VM by JetBrains s.r.o
  • Toolkit Version: 1e894c6bb1510e14a798fe11be2e5dcd1e438973
  • SAM CLI Version: SAM CLI, version 0.10.0
  • JVM/Python Version: Java 1.8.0_191 - Python v3.7.1

Additional context
Tried the manual build and install to workaround #694

Have tried putting region=eu-west-1 into both credentials file and config file. No joy.

Region is showing as set correctly as accessed from gear icon of AWS explorer.

Stacktrace:

Cannot init  component state
software.amazon.awssdk.core.exception.SdkClientException: Unable to load region from any of the providers in the chain software.amazon.awssdk.regions.providers.DefaultAwsRegionProviderChain@461d02de: [software.amazon.awssdk.regions.providers.SystemSettingsRegionProvider@54e0aa4e: Unable to load region from system settings. Region must be specified either via environment variable (AWS_REGION) or  system property (aws.region)., software.amazon.awssdk.regions.providers.AwsProfileRegionProvider@53113baf: No region provided in profile: default, software.amazon.awssdk.regions.providers.InstanceProfileRegionProvider@20b4855b: Unable to contact EC2 metadata service.]
    at software.amazon.awssdk.core.exception.SdkClientException$BuilderImpl.build(SdkClientException.java:97)
    at software.amazon.awssdk.regions.providers.AwsRegionProviderChain.getRegion(AwsRegionProviderChain.java:70)
    at software.amazon.awssdk.awscore.client.builder.AwsDefaultClientBuilder.regionFromDefaultProvider(AwsDefaultClientBuilder.java:174)
    at software.amazon.awssdk.awscore.client.builder.AwsDefaultClientBuilder.resolveRegion(AwsDefaultClientBuilder.java:163)
    at software.amazon.awssdk.awscore.client.builder.AwsDefaultClientBuilder.lambda$mergeChildDefaults$0(AwsDefaultClientBuilder.java:108)
    at software.amazon.awssdk.utils.builder.SdkBuilder.applyMutation(SdkBuilder.java:61)
    at software.amazon.awssdk.core.client.config.SdkClientConfiguration.merge(SdkClientConfiguration.java:67)
    at software.amazon.awssdk.awscore.client.builder.AwsDefaultClientBuilder.mergeChildDefaults(AwsDefaultClientBuilder.java:108)
    at software.amazon.awssdk.core.client.builder.SdkDefaultClientBuilder.syncClientConfiguration(SdkDefaultClientBuilder.java:142)
    at software.amazon.awssdk.services.sts.DefaultStsClientBuilder.buildClient(DefaultStsClientBuilder.java:27)
    at software.amazon.awssdk.services.sts.DefaultStsClientBuilder.buildClient(DefaultStsClientBuilder.java:22)
    at software.amazon.awssdk.core.client.builder.SdkDefaultClientBuilder.build(SdkDefaultClientBuilder.java:118)
    at software.aws.toolkits.core.credentials.ToolkitCredentialsProvider.isValid(ToolkitCredentialsProvider.kt:41)
    at software.aws.toolkits.jetbrains.core.credentials.DefaultProjectAccountSettingsManager.loadState(ProjectAccountSettingsManager.kt:139)
    at software.aws.toolkits.jetbrains.core.credentials.DefaultProjectAccountSettingsManager.loadState(ProjectAccountSettingsManager.kt:88)
    at com.intellij.configurationStore.ComponentStoreImpl.doInitComponent(ComponentStoreImpl.kt:378)
    at com.intellij.configurationStore.ComponentStoreImpl.initComponent(ComponentStoreImpl.kt:333)
    at com.intellij.configurationStore.ComponentStoreImpl.initPersistenceStateComponent(ComponentStoreImpl.kt:119)
    at com.intellij.configurationStore.ComponentStoreImpl.initComponent(ComponentStoreImpl.kt:93)
    at com.intellij.configurationStore.ComponentStoreWithExtraComponents.initComponent(ComponentStoreWithExtraComponents.kt:15)
    at com.intellij.openapi.components.impl.PlatformComponentManagerImpl.initializeComponent(PlatformComponentManagerImpl.java:54)
    at com.intellij.openapi.components.impl.ServiceManagerImpl$MyComponentAdapter.getComponentInstance(ServiceManagerImpl.java:215)
    at com.intellij.util.pico.DefaultPicoContainer.getLocalInstance(DefaultPicoContainer.java:246)
    at com.intellij.util.pico.DefaultPicoContainer.getComponentInstance(DefaultPicoContainer.java:213)
    at com.intellij.openapi.components.ServiceManager.doGetService(ServiceManager.java:52)
    at com.intellij.openapi.components.ServiceManager.getService(ServiceManager.java:30)
    at software.aws.toolkits.jetbrains.core.credentials.ProjectAccountSettingsManager$Companion.getInstance(ProjectAccountSettingsManager.kt:73)
    at software.aws.toolkits.jetbrains.core.explorer.ExplorerToolWindow.updateModel$jetbrains_core(ExplorerToolWindow.kt:78)
    at software.aws.toolkits.jetbrains.core.explorer.ExplorerToolWindow.<init>(ExplorerToolWindow.kt:66)
    at software.aws.toolkits.jetbrains.core.explorer.AwsExplorerFactory.createToolWindowContent(AwsExplorerFactory.kt:24)
    at com.intellij.openapi.wm.impl.ToolWindowImpl.ensureContentInitialized(ToolWindowImpl.java:526)
    at com.intellij.openapi.wm.impl.ToolWindowManagerImpl.lambda$initToolWindow$8(ToolWindowManagerImpl.java:514)
    at com.intellij.openapi.wm.impl.ToolWindowManagerImpl.initToolWindow(ToolWindowManagerImpl.java:517)
    at com.intellij.openapi.wm.impl.ToolWindowManagerImpl$6.run(ToolWindowManagerImpl.java:469)
    at com.intellij.openapi.wm.impl.CommandProcessor.runNext(CommandProcessor.java:78)
    at com.intellij.openapi.wm.impl.CommandProcessor.run(CommandProcessor.java:59)
    at com.intellij.openapi.wm.impl.commands.FinalizableCommand.finish(FinalizableCommand.java:36)
    at com.intellij.openapi.wm.impl.ToolWindowsPane$AddToolStripeButtonCmd.run(ToolWindowsPane.java:970)
    at com.intellij.openapi.wm.impl.CommandProcessor.runNext(CommandProcessor.java:78)
    at com.intellij.openapi.wm.impl.CommandProcessor.run(CommandProcessor.java:59)
    at com.intellij.openapi.wm.impl.commands.FinalizableCommand.finish(FinalizableCommand.java:36)
    at com.intellij.openapi.wm.impl.ToolWindowsPane$AddToolStripeButtonCmd.run(ToolWindowsPane.java:970)
    at com.intellij.openapi.wm.impl.CommandProcessor.runNext(CommandProcessor.java:78)
    at com.intellij.openapi.wm.impl.CommandProcessor.run(CommandProcessor.java:59)
    at com.intellij.openapi.wm.impl.commands.FinalizableCommand.finish(FinalizableCommand.java:36)
    at com.intellij.openapi.wm.impl.ToolWindowsPane$AddToolStripeButtonCmd.run(ToolWindowsPane.java:970)
    at com.intellij.openapi.wm.impl.CommandProcessor.runNext(CommandProcessor.java:78)
    at com.intellij.openapi.wm.impl.CommandProcessor.run(CommandProcessor.java:59)
    at com.intellij.openapi.wm.impl.commands.FinalizableCommand.finish(FinalizableCommand.java:36)
    at com.intellij.openapi.wm.impl.ToolWindowsPane$AddToolStripeButtonCmd.run(ToolWindowsPane.java:970)
    at com.intellij.openapi.wm.impl.CommandProcessor.runNext(CommandProcessor.java:78)
    at com.intellij.openapi.wm.impl.CommandProcessor.run(CommandProcessor.java:59)
    at com.intellij.openapi.wm.impl.commands.FinalizableCommand.finish(FinalizableCommand.java:36)
    at com.intellij.openapi.wm.impl.ToolWindowsPane$AddToolStripeButtonCmd.run(ToolWindowsPane.java:970)
    at com.intellij.openapi.wm.impl.CommandProcessor.runNext(CommandProcessor.java:78)
    at com.intellij.openapi.wm.impl.CommandProcessor.run(CommandProcessor.java:59)
    at com.intellij.openapi.wm.impl.commands.FinalizableCommand.finish(FinalizableCommand.java:36)
    at com.intellij.openapi.wm.impl.ToolWindowsPane$AddToolStripeButtonCmd.run(ToolWindowsPane.java:970)
    at com.intellij.openapi.wm.impl.CommandProcessor.runNext(CommandProcessor.java:78)
    at com.intellij.openapi.wm.impl.CommandProcessor.run(CommandProcessor.java:59)
    at com.intellij.openapi.wm.impl.commands.FinalizableCommand.finish(FinalizableCommand.java:36)
    at com.intellij.openapi.wm.impl.ToolWindowsPane$AddToolStripeButtonCmd.run(ToolWindowsPane.java:970)
    at com.intellij.openapi.wm.impl.CommandProcessor.runNext(CommandProcessor.java:78)
    at com.intellij.openapi.wm.impl.CommandProcessor.run(CommandProcessor.java:59)
    at com.intellij.openapi.wm.impl.commands.FinalizableCommand.finish(FinalizableCommand.java:36)
    at com.intellij.openapi.wm.impl.ToolWindowsPane$AddToolStripeButtonCmd.run(ToolWindowsPane.java:970)
    at com.intellij.openapi.wm.impl.CommandProcessor.runNext(CommandProcessor.java:78)
    at com.intellij.openapi.wm.impl.CommandProcessor.run(CommandProcessor.java:59)
    at com.intellij.openapi.wm.impl.CommandProcessor.flush(CommandProcessor.java:32)
    at com.intellij.openapi.wm.impl.ToolWindowManagerImpl.flushCommands(ToolWindowManagerImpl.java:600)
    at com.intellij.openapi.wm.impl.ToolWindowManagerImpl.access$3200(ToolWindowManagerImpl.java:69)
    at com.intellij.openapi.wm.impl.ToolWindowManagerImpl$InitToolWindowsActivity.lambda$runActivity$0(ToolWindowManagerImpl.java:2316)
    at java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:311)
    at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:762)
    at java.awt.EventQueue.access$500(EventQueue.java:98)
    at java.awt.EventQueue$3.run(EventQueue.java:715)
    at java.awt.EventQueue$3.run(EventQueue.java:709)
    at java.security.AccessController.doPrivileged(Native Method)
    at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:80)
    at java.awt.EventQueue.dispatchEvent(EventQueue.java:732)
    at com.intellij.ide.IdeEventQueue.defaultDispatchEvent(IdeEventQueue.java:719)
    at com.intellij.ide.IdeEventQueue._dispatchEvent(IdeEventQueue.java:668)
    at com.intellij.ide.IdeEventQueue.dispatchEvent(IdeEventQueue.java:363)
    at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:201)
    at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:116)
    at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:109)
    at java.awt.WaitDispatchSupport$2.run(WaitDispatchSupport.java:190)
    at java.awt.WaitDispatchSupport$4.run(WaitDispatchSupport.java:235)
    at java.awt.WaitDispatchSupport$4.run(WaitDispatchSupport.java:233)
    at java.security.AccessController.doPrivileged(Native Method)
    at java.awt.WaitDispatchSupport.enter(WaitDispatchSupport.java:233)
    at java.awt.Dialog.show(Dialog.java:1077)
    at com.intellij.openapi.ui.impl.DialogWrapperPeerImpl$MyDialog.show(DialogWrapperPeerImpl.java:698)
    at com.intellij.openapi.ui.impl.DialogWrapperPeerImpl.show(DialogWrapperPeerImpl.java:430)
    at com.intellij.openapi.ui.DialogWrapper.invokeShow(DialogWrapper.java:1681)
    at com.intellij.openapi.ui.DialogWrapper.show(DialogWrapper.java:1630)
    at com.intellij.openapi.progress.util.ProgressDialog.show(ProgressDialog.java:280)
    at com.intellij.openapi.progress.util.ProgressWindow.showDialog(ProgressWindow.java:227)
    at com.intellij.openapi.progress.util.ProgressWindow.lambda$null$1(ProgressWindow.java:160)
    at com.intellij.openapi.application.TransactionGuardImpl$2.run(TransactionGuardImpl.java:315)
    at com.intellij.openapi.application.impl.LaterInvocator$FlushQueue.doRun(LaterInvocator.java:435)
    at com.intellij.openapi.application.impl.LaterInvocator$FlushQueue.runNextEvent(LaterInvocator.java:419)
    at com.intellij.openapi.application.impl.LaterInvocator$FlushQueue.run(LaterInvocator.java:403)
    at java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:311)
    at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:762)
    at java.awt.EventQueue.access$500(EventQueue.java:98)
    at java.awt.EventQueue$3.run(EventQueue.java:715)
    at java.awt.EventQueue$3.run(EventQueue.java:709)
    at java.security.AccessController.doPrivileged(Native Method)
    at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:80)
    at java.awt.EventQueue.dispatchEvent(EventQueue.java:732)
    at com.intellij.ide.IdeEventQueue.defaultDispatchEvent(IdeEventQueue.java:719)
    at com.intellij.ide.IdeEventQueue._dispatchEvent(IdeEventQueue.java:668)
    at com.intellij.ide.IdeEventQueue.dispatchEvent(IdeEventQueue.java:363)
    at com.intellij.ide.IdeEventQueue.pumpEventsForHierarchy(IdeEventQueue.java:776)
    at com.intellij.openapi.progress.util.ProgressWindow.startBlocking(ProgressWindow.java:202)
    at com.intellij.openapi.progress.util.ProgressWindow.startBlocking(ProgressWindow.java:188)
    at com.intellij.openapi.application.impl.ApplicationImpl.runProcessWithProgressSynchronously(ApplicationImpl.java:606)
    at com.intellij.openapi.progress.impl.CoreProgressManager.runProcessWithProgressSynchronously(CoreProgressManager.java:454)
    at com.intellij.openapi.progress.impl.ProgressManagerImpl.runProcessWithProgressSynchronously(ProgressManagerImpl.java:110)
    at com.intellij.openapi.progress.impl.CoreProgressManager.runProcessWithProgressSynchronously(CoreProgressManager.java:251)
    at com.intellij.openapi.progress.impl.CoreProgressManager.runProcessWithProgressSynchronously(CoreProgressManager.java:205)
    at com.intellij.openapi.project.impl.ProjectManagerImpl.loadProjectUnderProgress(ProjectManagerImpl.java:448)
    at com.intellij.openapi.project.impl.ProjectManagerImpl.openProject(ProjectManagerImpl.java:423)
    at com.intellij.platform.PlatformProjectOpenProcessor.doOpenProject(PlatformProjectOpenProcessor.java:254)
    at com.intellij.ide.RecentProjectsManagerBase.doOpenProject(RecentProjectsManagerBase.java:578)
    at com.intellij.ide.RecentProjectsManagerBase.doReopenLastProject(RecentProjectsManagerBase.java:697)
    at com.intellij.ide.RecentProjectsManagerBase$MyAppLifecycleListener.appStarting(RecentProjectsManagerBase.java:742)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.lang.reflect.Method.invoke(Method.java:498)
    at com.intellij.util.messages.impl.MessageBusConnectionImpl.deliverMessage(MessageBusConnectionImpl.java:117)
    at com.intellij.util.messages.impl.MessageBusImpl.doPumpMessages(MessageBusImpl.java:397)
    at com.intellij.util.messages.impl.MessageBusImpl.pumpWaitingBuses(MessageBusImpl.java:358)
    at com.intellij.util.messages.impl.MessageBusImpl.pumpMessages(MessageBusImpl.java:347)
    at com.intellij.util.messages.impl.MessageBusImpl.sendMessage(MessageBusImpl.java:324)
    at com.intellij.util.messages.impl.MessageBusImpl.access$200(MessageBusImpl.java:29)
    at com.intellij.util.messages.impl.MessageBusImpl$2.invoke(MessageBusImpl.java:196)
    at com.sun.proxy.$Proxy70.appStarting(Unknown Source)
    at com.intellij.idea.IdeaApplication$IdeStarter.lambda$main$1(IdeaApplication.java:372)
    at com.intellij.openapi.application.TransactionGuardImpl.runSyncTransaction(TransactionGuardImpl.java:88)
    at com.intellij.openapi.application.TransactionGuardImpl.lambda$submitTransaction$1(TransactionGuardImpl.java:111)
    at com.intellij.openapi.application.TransactionGuardImpl.submitTransaction(TransactionGuardImpl.java:120)
    at com.intellij.openapi.application.TransactionGuard.submitTransaction(TransactionGuard.java:122)
    at com.intellij.idea.IdeaApplication$IdeStarter.main(IdeaApplication.java:370)
    at com.intellij.idea.IdeaApplication.lambda$run$1(IdeaApplication.java:211)
    at com.intellij.openapi.application.TransactionGuardImpl.performUserActivity(TransactionGuardImpl.java:195)
    at com.intellij.idea.IdeaApplication.run(IdeaApplication.java:211)
    at com.intellij.idea.IdeaApplication.lambda$initApplication$0(IdeaApplication.java:74)
    at java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:311)
    at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:762)
    at java.awt.EventQueue.access$500(EventQueue.java:98)
    at java.awt.EventQueue$3.run(EventQueue.java:715)
    at java.awt.EventQueue$3.run(EventQueue.java:709)
    at java.security.AccessController.doPrivileged(Native Method)
    at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:80)
    at java.awt.EventQueue.dispatchEvent(EventQueue.java:732)
    at com.intellij.ide.IdeEventQueue.dispatchEvent(IdeEventQueue.java:342)
    at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:201)
    at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:116)
    at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:105)
    at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:101)
    at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:93)
    at java.awt.EventDispatchThread.run(EventDispatchThread.java:82)
bug

Most helpful comment

Re-read exception now. You are trying to assume a role but the region info is missing so it doesn't know which STS to call. That info is not tied to the active region in the IDE.

Did you try to set the default region in the config file and then restart. We do not currently support refreshing of the credential files.

[default]
region = us-west-2

All 4 comments

Re-read exception now. You are trying to assume a role but the region info is missing so it doesn't know which STS to call. That info is not tied to the active region in the IDE.

Did you try to set the default region in the config file and then restart. We do not currently support refreshing of the credential files.

[default]
region = us-west-2

Update:
Tried again with adjustment to config file (had slight error before). Seems to work now.

Deciding to leave open since:

  1. It worked before without the config file
  2. When there was an error in the config file, the error could have been more descriptive or helpful (granted, the stacktrace did guide me in the right direction)

Also worth noting that restoring error in config file will not reproduce error. Is region being cached somewhere?

You may decide what you wish to do with this issue.

Thanks for fixing #694 ! 馃憤

  1. Yep. This is a new bug. https://github.com/aws/aws-toolkit-jetbrains/blob/a54d3aa9e5914e640ce8b87abba826f2e4638992/core/src/software/aws/toolkits/core/credentials/ToolkitCredentialsProvider.kt#L38 needs to have AWS_GLOBAL passed as the region instead of using the region provider chain.
  2. We do validate for required keys like access/secret but region is 100% optional. You wouldn't need it if we fix the bug I mentioned in 1.

Each time you edit the config file you have to restart the IDE. That is tracked in #260

Sounds good!

Kudos for being super responsive on the issue! 馃憤

Was this page helpful?
0 / 5 - 0 ratings