OWA 2007 – Exception: Corrupt Restriction Filter Data
Depois de algum tempo sem postar nenhum blog , gostaria de compartilhar um caso simples mas que ao mesmo tempo é extremamente interessante em como um pouco de observação pode nos levar a resolver problemas que aparentemente são difíceis.
Nesse incidente estávamos trabalhando com um problema de OWA. Toda vez que o cliente acessava a caixa postal através do OWA ele recebia uma página de erro com uma longa descrição. Na realidade um exception stack do .NET.
Para economizar tempo e espaço no BLOG vou colocar as linhas mais importantes
Request
Url: https://webmail.exchange.net:443/owa/forms/premium/StartPage.aspx
User host address: 192.168.0.100
User: testeowa
EX Address: /o=Exch2k7/ou=Exchange Administrative Group (FYDIBOHF23SPDLT)/cn=Recipients/cn=testeowa
SMTP Address: testeowa@exchange.net
OWA version: 8.1.278.2
Mailbox server: inter1.exchange.net
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)
.
.
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.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].
Como podem notar destaquei a parte de Inner Exception e a seguinte parte:
Microsoft.Exchange.Clients.Owa.Core.UserContext.get_RemindersSearchFolderId()
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].
Ao realizarmos uma pesquisa para {00062002-0000-0000-c000-000000000046} , encontramos o seguinte :
"where {00062002-0000-0000-C000-000000000046} is the PSETID_Appointment namespace and 8257000B is the property tag of dispidApptCounterProposal"
Isso nos leva que a mensagem exposta no Inner Exception:
Exception message: Unable to create custom property with property key [{00062002-0000-0000-c000-000000000046}:0x8232] type [Boolean].
É relacionada com calendar itens. Como o comportamento não se faz presente quando utilizamos OWA Light podemos concluir com um nível de segurança que o problema se faz presente ao se processar calendar itens , nesse caso reminders. Para eliminar os reminders e testar acesso , podemos pedir ao usuário para desabilitar os reminders , ou podemos iniciar o Outlook com o switch /cleanreminders
Outlook.exe command line switches
Após realizar esse procedimento , o acesso ao OWA para aquele usuário em particular foi restabelecido.