No worries, this error can be easily dealt with

If you’re trying to export your Autodesk Vault 2012 configuration from the ADMS console, but it throws the error “An error occurred when applying configuration. See the log for detail.” then read on. It’s a bug and there is a relatively easy way to fix it. First of all go to your Console log and have a rummage through it, yeah I know its intimidating, but its really not that bad if you ignore most of the techno babble and focus on the words you understand.

So how do you fix it?

In this case just look for the longest line towards the bottom of the log file.

Just look for the longest line in the Console Log then scroll to the right

In my case the error detail is as follows:

System.ArgumentException: Item has already been added. Key in dictionary: ‘ID_RULESET_DISPLAYNAME_PART’ Key being added: ‘ID_RULESET_DISPLAYNAME_PART’
at System.Collections.Hashtable.Insert(Object key, Object nvalue, Boolean add)

This in itself isn’t that helpful until you start thinking about what is being exported in the configuration which uses the name ‘Part’. Clearly that could be quite a few things. So here it is:

‘Part’ File Rule

‘Part’ Item Rule

The trouble is there are two rules with the same name. Even though they are in different sections of the Rules dialogue, it appears using the same Rule names between Files, Items & Folders isn’t supported at the moment. Before you get carried away, you can’t just rename the rule since that doesn’t change the ID within the SQL Database. You have to delete the rule and recreate it with a different name. This is where potentially a best practice of using prefixes on Rule names could help, however, having had this submitted to the Autodesk Support tema, I believe its correctly regarded as a bug rather than the result of using an unsupported naming convention. I believe this bug is also reproducible with Autodesk Vault 2013.

This has happened to me a number of times, I kept on forgetting the actual cause, so figured I should write a blog post to help others out and confine it to memory.