Skype for Business Hybrid: “Index was outside the bounds of the array”

Background

A customer had been using Skype for Business Online for a couple of years, but later needed to deploy Skype for Business Server 2015 and create a hybrid setup.  This was necessary to improve internal audio/video conferencing performance, and in preparation for a full Enterprise Voice deployment.

The customer deployed Skype for Business Server 2015, established a hybrid relationship with Skype for Business Online, but was unable to move users from Skype for Business Online to Skype for Business Server or vice-versa.

The customer was running the following PowerShell command to move users:

$cred = Get-Credential

Move-CsUser -Identity Steve.Bush@x500.co.uk -Target sfbpool1.x500.co.uk -Credential $cred -HostedMigrationOverrideUrl https://admin1e.online.lync.com/HostedMigration/hostedmigrationservice.svc -Confirm:$false

The HostedMigrationOverrideUrl is correct for the tenant.

Move-CsUser fails with this error:

“Index was outside the bounds of the array”

Investigation

I created a new AD User account to test with, and enabled it in Skype for Business Server, with the HostingProviderProxyFqdn pointing to Skype for Business Online:

Enable-CsUser -Identity “Steve.Bush” -SipAddress “sip:Steve.Bush@x500.co.uk” -HostingProviderProxyFqdn “sipfed.online.lync.com”

-Identity is the username of the AD user account.

The user was created successfully in Skype for Business Online.

I then tried to move the user from Skype for Business Online to Skype for Business Server, using the same PowerShell command as above.  Again, it fails with the same error: “Index was outside the bounds of the array”.

I connected to the Office 365 tenant using PowerShell, and examined the attributes that were being synched from local AD to Azure AD for the user with the following PowerShell command:

Get-MsolUser -UserPrincipalName Steve.Bush@x500.co.uk | select *

None of the msRTCSIP-* attributes were being synched, including the two important ones in this hybrid (msRTCSIP-DeploymentLocator & msRTCSIP-PrimaryUserAddress).

As mentioned earlier, the customer had been using Skype for Business Online for a couple of years, and synchronised their local AD user accounts with Azure AD.

Skype for Business Server (or OCS/Lync) was not deployed in the domain prior to the Azure AD Connect installation, therefore the domain schema wasn’t prepared for Skype for Business Server.  Azure AD connect is not aware of the presence of msRTCSIP-* attributes on users (and contacts) , and therefore can’t sync them to Azure AD.

Resolution

I ran Azure AD Connect from the server it is installed on, and refreshed the directory schema.  As soon as I did this the msRTC-SIP* attributes were synched to Azure AD.

Launch Azure AD Connect.  Click Configure.

ADC-Refresh-1

Select Refresh directory schema.  Click Next.

ADC-Refresh-2

Enter Office 365 Global Administrator credentials.  Click Next.

ADC-Refresh-3

Check Select All.  Click Next.

ADC-Refresh-4

Click Configure.

ADC-Refresh-5

Success: “The schema was refreshed for the selected directories”.  Click Exit.

ADC-Refresh-6

Advertisements

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Google+ photo

You are commenting using your Google+ account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s