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

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 17 hours 1 minutes ago
  • Unproposed as answer by Sylvain.c 17 hours 1 minutes ago
Free Windows Admin Tool Kit Click here and download it now
August 6th, 2015 5:59pm

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
August 6th, 2015 5:59pm

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,

Free Windows Admin Tool Kit Click here and download it now
August 20th, 2015 4:00am

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,

August 20th, 2015 10:30am

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)

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

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,

August 25th, 2015 11:19am

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.

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

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,

August 26th, 2015 3:40am

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

Other recent topics Other recent topics