Tuesday, March 22, 2011

07-07/10-10: Migrate sub-site with a custom permission level

Issue:
You see the following error in the import.log for a migration job:


Progress: Importing Role Assignment for "sub-site".
FatalError: The given key was not present in the dictionary.

 
Error description:
By default permission levels of a site are inherited from its top level site (i.e. site collection). The issue occurs in the following scenario:
There is the http://source site collection and the http://source/sub-site sub-site. The "sub-site" has a user (or group) with permissions assigned via a custom permission level. The permission levels are inherited from the site collection.
When the "sub-site" is migrated to a new http://target site collection, the custom permission level is not created on the sub-site level as it should be created on site collection level. If the target site collection does not have the custom permission level, the error occurs.

How to fix:
There are two workarounds:

  1. Create the custom permission level in the target site collection manually and retry import for the migration job
  2. Break inheritance of permission levels on the source "sub-site" and restart migration job.

No comments:

Post a Comment