If you’ve seen the error below you’ve probably spent a fair amount of time creating a bruise on your head in the shape of a mail server. (I know I have).

During our Exchange 2003 to 2008 migration, someone did the no no of creating a user mailbox on the 2008 server with the 2003 tools. The mailbox was fine and worked in Outlook, but Outlook Web Access gave the error below. The fix I found out is really simple, just reapply the 2008 attributes. Unfortunately MS removed the ability to do that from the GUI, but it can still be done from powershell. (apparently MS has decided to make exchange 2008 50% gui and 50% command line.)

Set-Mailbox username –ApplyMandatoryProperties

The above command will simply reapply the 2008 attributes to the mailbox. OWA should start working for the user after that. Incidentally, moving the mailbox back to the 2003 server and then to the 2008 server will have the same affect, but you will have to wait for exchange to do it’s stuff in the background.

Request

Url: https://exchangehub:443/owa/lang.owa

User host address: 10.5.1.108

Exception

Exception type: Microsoft.Exchange.Data.Storage.StoragePermanentException

Exception message: There was a problem accessing Active Directory.

Call stack

Microsoft.Exchange.Data.Storage.ExchangePrincipal.Save()

Microsoft.Exchange.Clients.Owa.Core.RequestDispatcher.DispatchLanguagePostLocal

ly(OwaContext owaContext, OwaIdentity logonIdentity, CultureInfo culture, String timeZoneKeyName, Boolean isOptimized) Microsoft.Exchange.Clients.Owa.Core.RequestDispatcher.DispatchLanguagePostReque

st(OwaContext owaContext)

Microsoft.Exchange.Clients.Owa.Core.RequestDispatcher.PrepareRequestWithoutSess

ion(OwaContext owaContext, UserContextCookie userContextCookie) Microsoft.Exchange.Clients.Owa.Core.RequestDispatcher.InternalDispatchRequest

(OwaContext owaContext)

Microsoft.Exchange.Clients.Owa.Core.RequestDispatcher.DispatchRequest

(OwaContext owaContext)

System.Web.HttpApplication.SyncEventExecutionStep.System.Web.HttpApplication.IE

xecutionStep.Execute()

System.Web.HttpApplication.ExecuteStep(IExecutionStep step, Boolean&

completedSynchronously)

Inner Exception

Exception type:

Microsoft.Exchange.Data.Directory.InvalidADObjectOperationException

Exception message: Property Languages cannot be set on this object because it requires the object to have version 0.1 (8.0.535.0) or later. Current version of the object is 0.0 (6.5.6500.0).

Call stack

Microsoft.Exchange.Data.Directory.PropertyBag.set_Item(PropertyDefinition key, Object value) Microsoft.Exchange.Data.Directory.ADObject.set_Item(PropertyDefinition

propertyDefinition, Object value)

Microsoft.Exchange.Data.Directory.ADObject.StampCachedCaculatedProperties

(Boolean retireCachedValue)

Microsoft.Exchange.Data.Directory.ADObject.ValidateWrite(List`1 errors)

Microsoft.Exchange.Data.Directory.Recipient.ADRecipient.ValidateWrite(List`1

errors)

Microsoft.Exchange.Data.Directory.Recipient.ADUser.ValidateWrite(List`1

errors)

Microsoft.Exchange.Data.Directory.ADSession.Save(ADObject instanceToSave,

IEnumerable`1 properties)

Microsoft.Exchange.Data.Storage.ExchangePrincipal.Save()