Richard's Exchange Ramblings

Things I've seen as an Exchange Support Escalation Engineer

Problems accessing Free/Busy information and logging into OWA in Exchange 2007

Problems accessing Free/Busy information and logging into OWA in Exchange 2007

  • Comments 4
  • Likes

In this case, the customer had an extended Exchange 2003 outage, and so they brought some important users up with new Exchange 2007 mailboxes. However, some of these users were encountering problems with people accessing their Free/Busy (availability) information. Further investigation also found problems with logging into OWA ‘Premium’ for the users.

The Free/Busy issue showed with hashes in the availability, and when we hovered over the information in Outlook, we could see that it was giving us something to the effect of ‘the mailbox could not be contacted’.

The OWA logon issue exhibited with the error "The item that you attempted to access appears to be corrupted and cannot be accessed."

Searching for information on this OWA error, I found some other cases where the solution was that the Reminders information in the mailbox had become corrupt. In those cases, running Set-CASMailbox <user> -OWARemindersAndNotificationsEnabled:$False would stop the issue, but in our case, OWA still showed the problem, so it did not appear to be the reminders issue.

We then looked further at the OWA exception received and saw a reference to userconfigurationtype.

Digging around with MFCMAPI, we finally found that the problems with both availability and OWA being encountered were due to corruption in a couple of options that are stored in the Associated Contents table of the Calendar folder in the user's mailbox.

We used the following process to fix them:

  • Create a profile for that user
  • Launch MFCMAPI (downloaded from http://mfcmapi.codeplex.com)
  • Click Session, Logon and Display Store Table
  • Choose the user profile
  • Double click on the user's mailbox from the table
  • Expand the Root Container, and then Top of Information Store
  • Right click on the Calendar folder and choose Open Associated Contents Table
  • We figured out from the OWA exception information that the problems were the IPM.Configuration.CategoryList and IPM.Configuration.WorkHours items, so we deleted them both.

Once those items were deleted, we could access everything in OWA again and our availability information showed up for the users.

Comments
  • Richard,

    Hoping I might catch your attention on a year old post.  You are describing the issues I am seeing in our Exchange environment, could you ellaborate on how you used the OWA exception error to find what propery has issues?

    The OWA error I am seeing is:

    Request

    Url: mail.myorganization.net/.../ReadMessage.aspx

    User host address:

    User: Mark

    EX Address: /o=First Organization/ou=Exchange Administrative Group (FYDIBOHF23SPDLT)/cn=Recipients/cn=

    SMTP Address:

    OWA version: 8.1.436.0

    Mailbox server: COSSEXCH01.steamboat.local

    Exception

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

    Exception message: The configuration object data is corrupted. Field = UserConfigurationType.

    Call stack

    Microsoft.Exchange.Data.Storage.UserConfiguration.BuildConfigurationFromQueryItem(Folder folder, Object[] row)

    Microsoft.Exchange.Data.Storage.UserConfiguration.GetIgnoringCache(UserConfigurationManager manager, Folder folder, String configurationName, UserConfigurationTypes freefetchType)

    Microsoft.Exchange.Data.Storage.UserConfigurationManager.InternalGetUserConfiguration(StoreId folderId, String configurationName, UserConfigurationTypes freefetchDataType)

    Microsoft.Exchange.Data.Storage.MasterCategoryList.Load()

    Microsoft.Exchange.Data.Storage.MailboxSession.GetMasterCategoryList()

    Microsoft.Exchange.Clients.Owa.Core.UserContext.GetMasterCategoryList()

    Microsoft.Exchange.Clients.Owa.Premium.Controls.CategorySwatch.RenderCategories(OwaContext owaContext, TextWriter writer, Item item)

    ASP.forms_premium_readmessage_aspx.__Render__control1(HtmlTextWriter __w, Control parameterContainer)

    System.Web.UI.Control.RenderChildrenInternal(HtmlTextWriter writer, ICollection children)

    System.Web.UI.Page.Render(HtmlTextWriter writer)

    System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint)

    Many Thanks

  • From the OWA exception info we see UserConfigurationType:

    The configuration object data is corrupted. Field = UserConfigurationType

    then further down we see reference to the MasterCategoryList:

    Microsoft.Exchange.Data.Storage.MasterCategoryList.Load()

    So, I'd have to say that the IPM.Configuration.CategoryList is likely your issue, and removing it with MFCMAPI is what you want to do. But after that, you might still see another exception referring to the WorkHours and need to remove it.

  • Richard - many thanks for the reply, deleting those two items has resolved this issue for everyone who was experiencing it except one.  This was a nagging problem in our environmen for a while and was starting to get very painful, that solution is something I never would have tried, thank you.

    Just to push my luck here is the error we are seeing in OWA now, removing the calendar entries did allow us to see this users free/busy which was an issue:

    Exception

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

    Exception message: The configuration object data is corrupted. Field = UserConfigurationType.

    Call stack

    Microsoft.Exchange.Data.Storage.UserConfiguration.BuildConfigurationFromQueryItem(Folder folder, Object[] row)

    Microsoft.Exchange.Data.Storage.UserConfiguration.GetIgnoringCache(UserConfigurationManager manager, Folder folder, String configurationName, UserConfigurationTypes freefetchType)

    Microsoft.Exchange.Data.Storage.UserConfigurationManager.InternalGetUserConfiguration(StoreId folderId, String configurationName, UserConfigurationTypes freefetchDataType)

    Microsoft.Exchange.Clients.Owa.Core.UserConfigurationUtilities.GetFolderConfiguration(String configurationName, UserContext userContext, StoreId folderId)

    Microsoft.Exchange.Clients.Owa.Core.UserContext.GetAllFolderPolicy()

    Microsoft.Exchange.Clients.Owa.Core.UserContext.OnPostLoadUserContext()

    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.SyncEventExecutionStep.System.Web.HttpApplication.IExecutionStep.Execute()

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

    What I noticed is all the corrupt entries no longer had a subject when implementing the fix on the Calendar.  In looking around I thought I might have found where this corruption was coming from and deleted two Err:0x8004010F=MAPI_E_NOT_FOUND entries from the Inbox associated contents folder but no change.  I am not sure how to match up the call stack with no data () to what is needed to be cleared out with MFCMAPI.

    Thanks again for the help already given and any additional, really appreciate the writeup.

    Regards,

    Mark B.

  • Take a look at this Exchange forum thread. It looks like something else busted in the Associated Contents:

    social.technet.microsoft.com/.../2f28fdc7-8af4-4ce7-842a-f90095f649db

Your comment has been posted.   Close
Thank you, your comment requires moderation so it may take a while to appear.   Close
Leave a Comment