Showing results for 
Search instead for 
Did you mean: 

Inconsistent plugins: plugins directory and project file mismatch

What should I do when I see this dialog stating "Inconsistent plugins: plugins directory and project file mismatch"?

Screen Shot 2015-09-30 at 6.37.18 PM.png

As the dialog says, this "mismatch" is usually due to one of the following conditions:

  • A plugin was modified in your project directory by the XDK but the project file (that keeps track of all this stuff) did not get updated.
  • Some agent outside of the control of the XDK modified a plugin file inside your project directory, so the XDK project file is "out-of-sync."
  • Some files in the plugins directory inside of your project directory were moved or deleted.

There is one other thing that can cause this condition, which is not listed above:

  • There is a mismatch between a plugin ID and that plugin's package ID.

This last one is caused by inconsistent naming of plugins that have been added to the new NPM package repo, where the Cordova project has asked plugin authors to place updates to their plugins. Read the last paragraph (below) to understand that issue more closely.

So... What should I do when I see this dialog stating "Inconsistent plugins: plugins directory and project file mismatch"?

In most cases, selecting the "Use Project File" option will do the right thing, because it will attempt to update the project file to match the contents of your project file. This can, in some cases, result in a mismatch between your CLI version number and your core Cordova plugin versions. Such a mismatch is not a fatal problem, but can result in incompatibilities with some plugins. You can fix this version mismatch issue by changing the CLI version to make the XDK update your core plugin versions to match your CLI version (you may have to change the CLI version twice to make that update happen).

If you are using a plugin that has mismatched plugin and package IDs you will see this message every time you open your project, you may be encountering an issue caused by bad plugin naming in the NPM registry. The best thing to do, in this case, is to select "Use Directory" when you open your project. The plugins shown in the sample dialog box (above) are examples of this problem. Look very closely and you will see "dash names" on the left and "dot names" on the right; that is what a package ID and plugin ID mismatch looks like.

Tags (2)
0 Kudos
5 Replies

I have experienced similar things. It happened when I upgrade my project. I use the directory, then I update the missing plugins using the plugin manager.



The "Use Directory" option throws an error "Cannot read property 'scratchDir' of undefined"

and the "Use Project File" option throws "An internal error occurred during the plugin operation.undefined is not a function".

I am now stuck with an unusable project. What can I do to resolve this?

Please help


Delete the plugins folder from your project and then reopen the project.



My Students now call me "Gyro Gearloose​".

The students want to work with the BatteryMonitor example: and XDK.

Is there anyone who could present a solution with XDK and BatteryMonitor on arduino101 which works?






The projects you are pointing to were not put together by the XDK team, I've not met Calvin Park, who created those samples, so I cannot vouch for their integrity or how well they will work with the XDK. They might have to be updated/modified to work with it.

Within 3491 there are three "companion app" (mobile app) samples that work with corresponding IoT apps. They are "Local Temp," "Touch Notifier," and "BLE Central" (see the image below):

Screen Shot 2016-08-15 at 9.26.13 AM.png

The corresponding IoT apps can be found in the "Internet of Things Embedded Application" section, within "Templates," immediately underneath the "Start a New Project" heading.

We're working on a workspace solution for bringing multiple related apps together, until then, you have to find them in these two places. Clicking the GitHub icon at the bottom of each sample description will take you to the GitHub repo that contains the respective app.