in

Microsoft Experts

Memoirs of a goldfish

Cameron McFie

Smile! It is guaranteed to make your day come alive!

April 2009 - Posts

  • User cannot log into OWA 2007 Premium - The item that you attempted to access appears to be corrupted and cannot be accessed.

    I came across the following problem today and thought I should share my fix.

    When a user logged into OWA 2007 Premium they receive an error "The item that you attempted to access appears to be corrupted and cannot be accessed". The problem didn't occur in OWA Light. Full details of the error are below;

    Request
    Url: https://mail.mydomain.com:443/owa/forms/premium/StartPage.aspx
    User host address: x.x.x.x
    User: John Smith
    EX Address: /o=HostedExchange/ou=Exchange Administrative Group (FYDIBOHF23SPDLT)/cn=Recipients/cn=user.0001
    SMTP Address: user@mycompany.com
    OWA version: 8.1.340.0
    Mailbox server: mailserver.mydomain.com

    Exception
    Exception type: Microsoft.Exchange.Data.Storage.CorruptDataException
    Exception message: Corrupt restriction filter data.

    Call stack
    Microsoft.Exchange.Data.Storage.FilterRestrictionConverter.GetPropertyDefinition(MapiProp mapiProp, PropTag propTag) Microsoft.Exchange.Data.Storage.FilterRestrictionConverter.InternalCreateNativeFilter(ExchangeTimeZone timeZone, MapiProp mapiProp, Restriction restriction, Int32 depth)
    Microsoft.Exchange.Data.Storage.FilterRestrictionConverter.InternalCreateFilters(ExchangeTimeZone timeZone, MapiProp mapiProp, Restriction[] restrictions, Int32 depth)
    Microsoft.Exchange.Data.Storage.FilterRestrictionConverter.InternalCreateNativeFilter(ExchangeTimeZone timeZone, MapiProp mapiProp, Restriction restriction, Int32 depth)
    Microsoft.Exchange.Data.Storage.FilterRestrictionConverter.InternalCreateFilters(ExchangeTimeZone timeZone, MapiProp mapiProp, Restriction[] restrictions, Int32 depth)
    Microsoft.Exchange.Data.Storage.FilterRestrictionConverter.InternalCreateNativeFilter(ExchangeTimeZone timeZone, MapiProp mapiProp, Restriction restriction, Int32 depth)
    Microsoft.Exchange.Data.Storage.FilterRestrictionConverter.InternalCreateFilters(ExchangeTimeZone timeZone, MapiProp mapiProp, Restriction[] restrictions, Int32 depth)
    Microsoft.Exchange.Data.Storage.FilterRestrictionConverter.InternalCreateNativeFilter(ExchangeTimeZone timeZone, MapiProp mapiProp, Restriction restriction, Int32 depth)
    Microsoft.Exchange.Data.Storage.FilterRestrictionConverter.InternalCreateFilters(ExchangeTimeZone timeZone, MapiProp mapiProp, Restriction[] restrictions, Int32 depth)
    Microsoft.Exchange.Data.Storage.FilterRestrictionConverter.InternalCreateNativeFilter(ExchangeTimeZone timeZone, MapiProp mapiProp, Restriction restriction, Int32 depth)
    Microsoft.Exchange.Data.Storage.FilterRestrictionConverter.InternalCreateFilter(ExchangeTimeZone timeZone, MapiProp mapiProp, Restriction restriction, Int32 depth)
    Microsoft.Exchange.Data.Storage.SearchFolder.GetSearchCriteria()
    Microsoft.Exchange.Data.Storage.DefaultFolderManager.GetRemindersSearchFolderState(SearchFolder reminders)
    Microsoft.Exchange.Data.Storage.DefaultFolderManager.VerifyAndFixRemindersSearchFolder(StoreId reminderSearchFolderId)
    Microsoft.Exchange.Data.Storage.DefaultFolderManager.GetDefaultFolderId(DefaultFolderType defaultFolderType)
    Microsoft.Exchange.Clients.Owa.Core.UserContext.GetDefaultFolderId(DefaultFolderType defaultFolderType, String folderName)
    Microsoft.Exchange.Clients.Owa.Core.UserContext.get_RemindersSearchFolderId()
    Microsoft.Exchange.Clients.Owa.Premium.StartPage.OnInit(EventArgs e)
    System.Web.UI.Control.InitRecursive(Control namingContainer)
    System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint)

    Inner Exception
    Exception type: Microsoft.Exchange.Data.Storage.InvalidPropertyTypeException
    Exception message: Unable to create custom property with property key [{00062002-0000-0000-c000-000000000046}:0x8232] type [Boolean].

    Call stack
    Microsoft.Exchange.Data.Storage.NativeStorePropertyDefinition.TryFindEquivalentDefinition(Key key, Boolean isCustom, PropType type, TypeCheckingFlag typeCheckingFlag, Boolean& createNewDefinition)
    Microsoft.Exchange.Data.Storage.GuidIdPropertyDefinition.InternalCreate(String displayName, Type propertyType, PropType mapiPropType, Guid propertyGuid, Int32 dispId, PropertyFlags flags, TypeCheckingFlag typeCheckingFlag, Boolean isCustom, PropertyDefinitionConstraint[] constraints)
    Microsoft.Exchange.Data.Storage.InternalSchema.PropertyDefinitionsFromPropTags(TypeCheckingFlag propertyTypeCheckingFlag, MapiProp mapiProp, PropTag[] tags)
    Microsoft.Exchange.Data.Storage.FilterRestrictionConverter.GetPropertyDefinition(MapiProp mapiProp, PropTag propTag)

    The problem as you can see by the bit highlighted in red is that it is a problem with the reminders in the mailbox. You will probably find it is some corrupted calendar items that has corrupted the Reminders.

    When I logged into the mailbox using Outlook I found two reminders in a popup window. When I tried to dismiss them I received an error "Cannot turn off the reminder. You may be reminded again."

    To fix the problem I had to do the following;

    • Remove the corrupted calendar items in Outlook
    • Close Outlook
    • Download MFCMAPI (http://support.microsoft.com/?ID=291794)
    • Run MFCMAPI
    • Go to Session->Logon and Display Store Table
    • Select the users profile
    • Double click on "Mailbox – User"
    • Expand "Root Container"
    • Right Click "Reminders" folder
    • Select "Delete folder"
    • Close MFCMAPI
    • At a DOS prompt, change directory to where office is installed (in my case it is C:\Program Files\Microsoft Office\Office12)
    • Run "outlook.exe /resetfolders" and select the relevant outlook profile

     

    I hope this helps you if you have the same problem.