Forefront Identity Management SharePoint Profile Store Connector Export Error:  Value cannot be null. Parameter name: strAccountName

I am using Forefront Identity Manager 2010 R2.  We have installed the Microsoft SharePoint Profile Store connector and have setup up attribute flow to my SharePoint Server.  We have disconnected and disabled the Native FIM Sharepoint Profile Connector that is deployed by SharePoint (This is my SharePoint DEV environment).

I followed this Documentation: https://msdn.microsoft.com/en-us/library/Dn511003%28v=WS.10%29.aspx

I used input from: http://goodworkaround.com/node/70

I am pushing all the standard attributes such with no Custom Attributes on the SharePoint side.

Data flow is one direction from my FIM Installation to Sharepoint. We do not have any flows from SharePoint to FIM.

I have exported several thousand user objects to SharePoint with Success, photographs included.  User profiles are working and successful.

After a few days of letting the synchronization bake, I am finding that Updates to user objects are failing on Export to SharePoint with the following error (taken from the MA error message):

Export retry FAILED for Entry[ObjectType: user, Anchor: DOMAIN_USER1234__fa631765-12b1-4da1-879-2dcfd6a7afae]..
 Error: System.Web.Services.Protocols.SoapException: Server was unable to process request. ---> Value cannot be null.
Parameter name: strAccountName
   at System.Web.Services.Protocols.SoapHttpClientProtocol.ReadResponse(SoapClientMessage message, WebResponse response, Stream responseStream, Boolean asyncCall)
   at System.Web.Services.Protocols.SoapHttpClientProtocol.Invoke(String methodName, Object[] parameters)
   at Microsoft.IdentityManagement.Connector.Sharepoint.SharePointProfileImportExportService.ProfileImportExportService.UpdateWithProfileChangeData(Int64 importExportId, ProfileChangeData[] profileChangeData)
   at Microsoft.IdentityManagement.Connector.Sharepoint.SharepointServiceProvider.UpdateWithProfileChangeData(Int64 importExportId, ProfileChangeData[] profileChangeData)
   at Microsoft.IdentityManagement.Connector.Sharepoint.SharepointConnector.PutExportEntries(IList`1 csEntries)

I have verified that the AccountName is not blank as this error suggests.

The XML of the update request (As pulled from a network trace):

<?xml version="1.0" encoding="utf-8"?>
<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
    <soap:Body>
        <UpdateWithProfileChangeData xmlns="http://microsoft.com/webservices/SharePointPortalServer/ProfileImportExportService">
            <importExportId>104</importExportId>
            <profileChangeData>
                <ProfileChangeData>
                    <ProfileIdentifier />
                    <DistinguishedName>DOMAIN_USER12345__8ce5dfd2-0b49-40fb-8b56-7a2b740256cb</DistinguishedName>
                    <ObjectGuid>00000000-0000-0000-0000-000000000000</ObjectGuid>
                    <ObjectClass>user</ObjectClass>
                    <PropertyChanges>
                        <PropertyChangeData>
                            <Name>LastName</Name>
                            <ChangeType>Modify</ChangeType>
                            <Values>
                                <anyType xsi:type="xsd:string">Smith</anyType>
                            </Values>
                        </PropertyChangeData>
                        <PropertyChangeData>
                            <Name>WorkEmail</Name>
                            <ChangeType>Modify</ChangeType>
                            <Values>
                                <anyType xsi:type="xsd:string">SSMith@domain.com</anyType>
                            </Values>
                        </PropertyChangeData>
                    </PropertyChanges>
                    <ChangeType>Modify</ChangeType>
                </ProfileChangeData>
            </profileChangeData>
        </UpdateWithProfileChangeData>
    </soap:Body>
</soap:Envelope>

The SharePoint server response:

<?xml version="1.0" encoding="utf-8"?>
<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
    <soap:Body>
        <soap:Fault>
            <faultcode>soap:Server</faultcode>
            <faultstring>Server was unable to process request. ---&gt; Value cannot be null.

Parameter name: strAccountName</faultstring>
            <detail />
        </soap:Fault>
    </soap:Body>
</soap:Envelope>

I can delete the profile in SharePoint and after a full sync the profile will be there with the updated data.

Any thoughts on why SharePoint would be rejecting this update.



  • Edited by Mateo-dude Thursday, August 06, 2015 5:42 PM
July 31st, 2015 10:13pm

Hello All.  Since I have not gotten any ideas I will provide some more information.  Below is the Synchronization rule flows.

Metaverse Attribute Data Source Attribute
Initial Outbound Attribute Flows
Allow Nulls Destination Source
false dn CustomExpression(ConvertSidToString(objectSid))
false Anchor CustomExpression(ConvertSidToString(objectSid))
Persistent Outbound Attribute Flows
Allow Nulls Destination Source
false ProfileIdentifier CustomExpression(+("DOMAIN\",accountName))
true PreferredName displayName
true WorkEmail email
true FirstName firstName
true LastName lastName
true Office LocationDescription
false domain Constant: TEC
true Picture photo
false SPS-ClaimProviderID Constant: Windows
false SPS-ClaimProviderType Constant: Windows
false UserName accountName
false SID objectSid
true WorkPhone Trim(tecPhoneExt_Primary)
false Manager manager
false Department DepartmentDescription
false SPS-DistinguishedName DistinguishedName
false SPS-JobTitle JobCodeDescription
false SPS-Location OfficeCity_Primary

I am not actually flowing the AccountName.  I get the same error when I do flow the account name, though some documentation states this is not necessary.

Free Windows Admin Tool Kit Click here and download it now
August 6th, 2015 5:38pm

1. Seems like you are using User Profile Services in SP, which in islelf is a FIM, but not quite as you describe it.

2. The error is asking you to populate the accountName, bc that is a required attribute.  The fact that your error appears even after you add it, is because then you need to perform a full synchronization. 

Whenever you make a schema change, you need a full import synchronization. (In FIM full import - full synchronization). In UPS  I believe it is called Full Synchronization and includes all necessary steps.

 
August 6th, 2015 5:47pm

Thank you.

To clarify my setup as I may have not been clear.

I am able to remove the profiles and then re-provision the profiles via FIM without incident.  The error I am receiving is during an update from the MetaVerse to SharePoint. When someone changes their Phone Number or moves Departments for example.

I am using a full-blown FIM implementation.  The FIM Synchronization server on the SharePoint Sever is disabled per the instruction documentation.

In troubleshooting this, I am sending the same attributes that the FIM Synchronization Service provided my SharePoint are, which does not include the AccountName attribute.

  • Proposed as answer by Sylvain.c Thursday, August 20, 2015 2:20 PM
  • Unproposed as answer by Sylvain.c Thursday, August 20, 2015 2:20 PM
Free Windows Admin Tool Kit Click here and download it now
August 6th, 2015 5:59pm

Can you add AccountName and run a full cycle.

August 6th, 2015 7:01pm

Thank your for your suggestion, I really appreciate your assistance.

I just went to add AccountName and it turns out I had added it yesterday.  We did a full import - full sync of all our connected sources this morning.  I just re-ran the SharePoint full import - full sync for the SharePoint MA and received exact same error on the export for 2 user objects.  On object is changing an address while the other is a department move.

I was hoping it was this simple.

Free Windows Admin Tool Kit Click here and download it now
August 6th, 2015 7:53pm

Hello,

I got the same error, with an 401 after the Soap Error message "Value cannot be null. Parameter name: strAccountName".

Did you make advancements?

Regards,

August 20th, 2015 7:56am

Hey,

Some news! I have done some tests with one of my colleagues.

In fact, the error is due to the missing value of "ProfileIdentifier".

The only solution I have found is to change the value of the "ProfileIdentifier": Change the case of the value when you have to do update.

It's not a nice solution... and when I do a Full Sync, I have all users with an update on "ProfileIdentifier".

Regards,

Free Windows Admin Tool Kit Click here and download it now
August 20th, 2015 2:25pm

Thank You!

I have not found a solution to this issue.  We are still not able to update users in SharePoint.  I verified and I am sending data in the "ProfileIdentifier" attribute - it is all CAPS.  You mentioned change the case of the value, what are you referring to?

The interesting thing to me is, I am not sending any such data (either profile identifier or AccountName data in the flow that is failing (the flow for the updated user).  When one looks at the updated values it will be only their email or telephone number and not either accountName or ProfileIdentifier...

The Full Error:

Export retry FAILED for Entry[ObjectType: user, Anchor: DOMAIN_USER34563__ad5fg54-9f27-4e3c-b88b-54r65f4g864fd]..
 Error: System.Web.Services.Protocols.SoapException: Server was unable to process request. ---> Value cannot be null.
Parameter name: strAccountName
   at System.Web.Services.Protocols.SoapHttpClientProtocol.ReadResponse(SoapClientMessage message, WebResponse response, Stream responseStream, Boolean asyncCall)
   at System.Web.Services.Protocols.SoapHttpClientProtocol.Invoke(String methodName, Object[] parameters)
   at Microsoft.IdentityManagement.Connector.Sharepoint.SharePointProfileImportExportService.ProfileImportExportService.UpdateWithProfileChangeData(Int64 importExportId, ProfileChangeData[] profileChangeData)
   at Microsoft.IdentityManagement.Connector.Sharepoint.SharepointServiceProvider.UpdateWithProfileChangeData(Int64 importExportId, ProfileChangeData[] profileChangeData)
   at Microsoft.IdentityManagement.Connector.Sharepoint.SharepointConnector.PutExportEntries(IList`1 csEntries)

August 20th, 2015 4:51pm

In fact, we have implemented a little client to make the same call as FIM SP Connector and if you do not provide "ProfileIdentifier", update is rejected with the same error as above.


Regarding the code of the connector, "ProfileIdentifier" in valorised throught CSEntryChange collection. And to be part of this collection, an attribute must be updated!

So I did an extended export flow with:

  • MV attributes; all of your flow
  • CS attribute: ProfileIdentifier

In the code, i determine if the value of the CS attribute is an UpperCase ou LowerCase, and I change the case.

But like I said in my previous post, I don't like this solution :) I'm still searching another one

Regards,

Free Windows Admin Tool Kit Click here and download it now
August 25th, 2015 11:17am

Thanks for your reply.

So that I understand, you have created app to "post" the update XML to the SharePoint site directly including the "ProfileIdentifier" CS attribute (in lower case) and the update was successful?

That is what I am suspecting, that FIM needs to be including the "ProfileIentifier" attribute (or another) in the update and it is not.

Thanks again.

I am looking at opening a ticket with Support on the subject as this seems to be a structural issue with FIM - or SharePoint - that needs to be addressed.

August 25th, 2015 2:05pm

In fact, it's two different things:

  • SP Client is for investigating on the error
  • Extended Export flow on ProfileIdentifier is for the SP connector to fill the node ProfileIdentifier (look into the XML generate by the request in your first post)

Regards,

Free Windows Admin Tool Kit Click here and download it now
August 26th, 2015 3:42am

This topic is archived. No further replies will be accepted.

Other recent topics Other recent topics