Thursday, September 24, 2009

Exchange 2007 OWA Error

I had a client that had a single user get the following error whenever they logged into OWA. The company was running Exchange 2007 SP1. The bold below is what gave it away. The mailbox was not a legacy mailbox, it so it should of read version 8.0.

Url: https://exchangeserver/owa
User host address:

Exception type: Microsoft.Exchange.Data.Storage.StoragePermanentException
Exception message: There was a problem accessing Active Directory.

Call stack
Microsoft.Exchange.Clients.Owa.Core.RequestDispatcher.DispatchLanguagePostLocally(OwaContext owaContext, OwaIdentity logonIdentity, CultureInfo culture, String timeZoneKeyName, Boolean isOptimized)
Microsoft.Exchange.Clients.Owa.Core.RequestDispatcher.DispatchLanguagePostRequest(OwaContext owaContext)
Microsoft.Exchange.Clients.Owa.Core.RequestDispatcher.PrepareRequestWithoutSession(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.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)

In ADSI edit on the users account the msExchVersion was not set to anything ie it read <Not Set>. I compared the attribute with another user account which read 4535486012416. Updating this attribute fixed the problem. Please note future updates may change this attribute on peoples accounts so it is important you align the attribute up with someone elses account in your oganisation and not simply use 4535486012416.

My mate Blake just pointed out to me there is another way of doing this as documented on:

Set-Mailbox -Identity -ApplyMandatoryProperties

He also pointed out that this issue is caused when a mailbox is created using Exchange 2003 system tools in a 2007 environment.

1 comment:

  1. Better would be to Set-Mailbox [identity] -ApplyMandatoryProperties

    Even better would be to stop admins using Exchange 2003 System Manager to manage mailboxes in a mixed/2007 environment.