Infinite loop of "Resolve Configuration Issues" notifications

Issue #2413 resolved
Mark Mindenhall created an issue

I saw in the release notes that some things had changed with how modules worked in the underlying Intellij platform, so I decided to re-create my project from scratch. This is on a monorepo with 38 SFDX projects, each of which contains a single package. When I run the “New project from sources” workflow, all of the top level folders are detected as IC2 modules.

To avoid repetitive UI clicks, I have a script that fixes up the .iml files in each module to include the Illuminated Cloud FacetManager element. After running the script everything was fine. I then closed the reopened the project, and I’m getting an endless loop of notifications that say:

Resolve Configuration Issues

Set the SDK for ‘mmscratch09’.

The mmscratch09 reference is the alias of the scratch org that all of my modules have set as their connection. I’m not sure how to fix this.

Here’s a representative .iml file from one of the modules:

<?xml version="1.0" encoding="UTF-8"?>
<module type="GENERAL_MODULE" version="4">
  <component name="FacetManager">
    <facet type="IlluminatedCloud" name="Illuminated Cloud">
      <configuration>
        <option name="connectionName" value="mmscratch09" />
        <option name="connectionType" value="SFDX" />
        <option name="moduleContents">
          <ModuleContents>
            <option name="contentSelectionType" value="SELECTED" />
          </ModuleContents>
        </option>
      </configuration>
    </facet>
  </component>
  <component name="NewModuleRootManager" inherit-compiler-output="true">
    <exclude-output />
    <content url="file://$MODULE_DIR$">
      <sourceFolder url="file://$MODULE_DIR$/config" isTestSource="false" />
      <sourceFolder url="file://$MODULE_DIR$/force-app" isTestSource="false" />
      <excludeFolder url="file://$MODULE_DIR$/.sfdx" />
      <excludeFolder url="file://$MODULE_DIR$/.sf" />
    </content>
    <orderEntry type="inheritedJdk" />
    <orderEntry type="sourceFolder" forTests="false" />
  </component>
</module>

When the non-stop messages start popping, it essentially locks the UI because each new message that pops up seems to be grabbing focus, so it’s hard to even use the app menu at the top of the screen (I’m on a Mac). I’ve attached a thread dump.

Comments (13)

  1. Mark Mindenhall reporter

    I figured out the problem. I had two SDKs using the same scratch org (one for sfdc-org, which is my usual project name, and one for sfdc2-org which I had used for a test:

    I had selected the sfdc2-org SDK as the Project SDK in the sfdc-org project, which for some reason was causing the infinite notifications. When I changed to the sfdc-org SDK and then closed and reopened the project, everything was back to normal.

    I’ll lower the priority, but it’s clearly still a bug that this would happen.

  2. Scott Wells repo owner

    Mark, I’m not sure that I follow the actual issue. I have many SDKs that use the same org and haven’t seen anything like that. Can you describe the precise scenario that would lead to this? Apologies if my brain has just reached end-of-day mode…might need to try to digest what you’ve written here again tomorrow morning.

  3. Mark Mindenhall reporter

    Hi Scott, all of this is with respect to the same salesforce org, but two different IC2 projects created for that org. My “normal” project is called sfdc-org. I created a new project called sfdc2-org to test out the process of starting from scratch with IC2 in case the change to module types mentioned recently in release notes would change anything (making our documentation out of date).

    After I had validated everything in sfdc2-org, I deleted the .idea folder and all .iml files in my regular sfdc-org folder, and re-created the project via the New project from existing sources flow. Then, I selected the SDK that had been created in the sfdc2-org project as the project level SDK so that “inheritedJdk” would work for the modules. I then fixed up the rest via a script (sets the default username for each project/package, adds the FacetManager component element if missing). Then I closed and reopened the project, and started seeing all of the errors.

    When I switched the SDK to the one created in the sfdc-org project, the errors stopped. So something about trying to use an SDK created from another IC2 project (but visible in the current project) wasn’t working.

    So I think there are two issues here:

    1. Why were there errors when trying to use an SDK created by another project (but for the same org/codebase) in the current project?
    2. When the error condition happened, what caused it to continually report the errors in an infinite loop rather than reporting them once and stopping?

  4. Scott Wells repo owner

    Mark, I’d have to investigate the full reason, but IC2’s SDKs are inherently coded as <projectName>-<connectionName>, so it’s possible that using an SDK from another project is resulting in some downstream issue(s). In general it’s best to use the project-specific SDK for a given project.

  5. Scott Wells repo owner

    This actually happened to me today in one of my multi-module test projects. It’s weird in that IC2 sets the module’s SDK, then the next time it checks whether an SDK is set, it gets back null. I’m fixing it now…or at least putting a workaround in place by consulting a different path for whether it’s been set. Just thought you’d like to know…

  6. trent.christensen

    Has this issue been resolved or is there a workaround? I’m experiencing it in one of my projects. Just started happening today.

  7. Scott Wells repo owner

    Trent, I haven’t heard about it or experienced it myself in a long while, but that doesn’t mean it’s 100% eliminated. Can you please make sure that you’re on the absolute latest builds of both the JetBrains IDE and IC2 and, if the issue is still present, please enable debug logging for module validation, reproduce the behavior, and either attach or email the resulting idea.log file for review?

  8. trent.christensen

    Scott, I’m a bit slow in my reply. I was able to work around the issue by just creating a new project. If it comes up again, I will let you know. Thank you for your quick reply.

  9. Log in to comment