Error: The list of instructors or learners may be incomplete

Topics: User Forum
Dec 14, 2006 at 4:27 PM
Hi, i am running the Beta 1 release of the Learning Kit on top of a clean install of MSOSS 2007 final.

I followed the instructions for install as closely as possible, but my default install of sharepoint doesnt appear exactly as the notes suggest. (more info on request, im assuming this is simply differences between beta and release of sharepoint).

The sharepoint server is a Domain Member in my active directory domain. Instead of adding individual users as learners and instructors i am trying to add groups. I have created new groups in my ADS. The groups both contain 2 users each.

However, when i attempt to assign the solitaire sample assignment i get the following error in the web page:

###############################################
The list of instructors or learners may be incomplete because the following groups could not be read:
Domain\slk learners
Domain\slk instructors
More information may be available in the server event log.

There are no learners on this site.
###############################################

The event log reads:

###############################################
SharePoint Learning Kit Error

Error creating one or more users in site collection "http://server-06": Microsoft.SharePoint.SPException: The user does not exist or is not unique. ---> System.Runtime.InteropServices.COMException (0x81020054): The user does not exist or is not unique.
at Microsoft.SharePoint.Library.SPRequestInternalClass.UpdateMembers(String bstrUrl, Guid& pguidScopeId, Int32 lGroupID, Int32 lGroupOwnerId, Object& pvarArrayAdd, Object& pvarArrayAddIds, Object& pvarArrayLoginsRemove, Object& pvarArrayIdsRemove, Boolean bSendEmail)
at Microsoft.SharePoint.Library.SPRequest.UpdateMembers(String bstrUrl, Guid& pguidScopeId, Int32 lGroupID, Int32 lGroupOwnerId, Object& pvarArrayAdd, Object& pvarArrayAddIds, Object& pvarArrayLoginsRemove, Object& pvarArrayIdsRemove, Boolean bSendEmail)
--- End of inner exception stack trace ---
at Microsoft.SharePoint.Library.SPRequest.UpdateMembers(String bstrUrl, Guid& pguidScopeId, Int32 lGroupID, Int32 lGroupOwnerId, Object& pvarArrayAdd, Object& pvarArrayAddIds, Object& pvarArrayLoginsRemove, Object& pvarArrayIdsRemove, Boolean bSendEmail)
at Microsoft.SharePoint.SPUserCollection.UpdateMembers(Object objUpdateInfo, Object objRemoveLogins, Object objRemoveIds, Boolean fSendEmail)
at Microsoft.SharePoint.SPUserCollection.AddCollection(SPUserInfo[] addUsersInfo)
at Microsoft.SharePointLearningKit.SlkStore.EnumerateDomainGroupMembers(SPWeb spWeb, SPUser domainGroup, Boolean isInstructor, Boolean isLearner, List`1 groupFailuresList, StringBuilder groupFailureDetailsBuilder, Dictionary`2 instructorsByUserKey, Dictionary`2 learnersByUserKey, Dictionary`2 users, List`1 learnerKeys, List`1 learnerGroups, DateTime startTime)

Error creating one or more users in site collection "http://server-06": Microsoft.SharePoint.SPException: The user does not exist or is not unique. ---> System.Runtime.InteropServices.COMException (0x81020054): The user does not exist or is not unique.
at Microsoft.SharePoint.Library.SPRequestInternalClass.UpdateMembers(String bstrUrl, Guid& pguidScopeId, Int32 lGroupID, Int32 lGroupOwnerId, Object& pvarArrayAdd, Object& pvarArrayAddIds, Object& pvarArrayLoginsRemove, Object& pvarArrayIdsRemove, Boolean bSendEmail)
at Microsoft.SharePoint.Library.SPRequest.UpdateMembers(String bstrUrl, Guid& pguidScopeId, Int32 lGroupID, Int32 lGroupOwnerId, Object& pvarArrayAdd, Object& pvarArrayAddIds, Object& pvarArrayLoginsRemove, Object& pvarArrayIdsRemove, Boolean bSendEmail)
--- End of inner exception stack trace ---
at Microsoft.SharePoint.Library.SPRequest.UpdateMembers(String bstrUrl, Guid& pguidScopeId, Int32 lGroupID, Int32 lGroupOwnerId, Object& pvarArrayAdd, Object& pvarArrayAddIds, Object& pvarArrayLoginsRemove, Object& pvarArrayIdsRemove, Boolean bSendEmail)
at Microsoft.SharePoint.SPUserCollection.UpdateMembers(Object objUpdateInfo, Object objRemoveLogins, Object objRemoveIds, Boolean fSendEmail)
at Microsoft.SharePoint.SPUserCollection.AddCollection(SPUserInfo[] addUsersInfo)
at Microsoft.SharePointLearningKit.SlkStore.EnumerateDomainGroupMembers(SPWeb spWeb, SPUser domainGroup, Boolean isInstructor, Boolean isLearner, List`1 groupFailuresList, StringBuilder groupFailureDetailsBuilder, Dictionary`2 instructorsByUserKey, Dictionary`2 learnersByUserKey, Dictionary`2 users, List`1 learnerKeys, List`1 learnerGroups, DateTime startTime)
###############################################


I have tried with different groups but get the same errors so now im a bit stuck. Would appreciate any advice..

Thanks, Matt
Dec 20, 2006 at 2:28 PM
I too have exactly the same problem and would like some pointers as I am unable to assign any content to users.

I am not using local server group but groups based in our AD i.e. DomainName\Teachers and DomainName\Students

Any help at this point would be great.

regards,

Ozzie
Dec 21, 2006 at 8:00 AM
Not sure what the exact problem could be, but here are some things to investigate

SLK attempts to add individual users of the domain group to SharePoint when a domain group is assigned an assignment and this is the point of the current failure.

From the error message it appears that one or more users in the domain group cannot be added to SharePoint. We can't be sure, though, as the error message from SharePoint does not have user information and is not very helpful. If you have already ensured that all users belonging to the domain group are valid, another possible reason for the failure is that the users are being incorrectly enumerated for some reason.

You could verify to see if the enumeration is being performed correctly by using the 'EnumerateDomainGroup' function of the 'DomainGroupUtilities' class of SharePointLearningKit. Here's a small code snippet to help,

> ICollection<SPUserInfo> DomainMembers = DomainGroupUtilities.EnumerateDomainGroup("DomainName\\Teachers", new TimeSpan(1, 0, 0));

> foreach (SPUserInfo Member in DomainMembers)
> Console.WriteLine(Member.LoginName);

If the enumerated users are correct, then the problem could be that one or more of them is invalid and cannot be added. To zero-in on the user that is causing the problem, you can compare the enumerated list with the list of users already added to SharePoint. The first user that is missing in SharePoint is the invalid user.
Dec 28, 2006 at 10:24 AM
Hi again,

Thanks for the responses (if only to keep my problem active!).

While i am not really able to try your code snippet (dont have the skills) and can possibly offer some more information:

It had occured to me that individual user accounts may be the problem, so to this end i did try creating a specific group with a single individual assigned to it. I get the same errors.

The individual users that i tried in the groups do successfully login to sharepoint.

I am finding this really frustrating. I was very keen to make some progress prior to BETT. I am now beginning to wonder if the current release is even compatable with the full version release of MSOSS?
Dec 29, 2006 at 4:00 AM
Hi Matt,

The problem most certainly seems to be with enumeration. My guess is that this has to do with the active directory setup and how or if data is exposed through the ldap interfaces. This may not be related to the MOSS versions.
If you have the resources for it, I noticed that there is a tool in the source code that will help analyse your active directory setup as seen by SLK. You can find it at SLK->Slk->Dll->TestDomainGroups directory in the source tree (download latest source tree from the 'Source Code' tab on this page). It can be built through Visual Studio or with the help of the included makefile. This is a console application which will take the name of the domain group as a command-line parameter (for eg. 'Domain\SLKTeachers') and outputs its users.