Credits

Thanks to Laurent Benmeziani and his team to deep dive on this error and providing the technical content.

 


Short URL

Bookmark this article as : http://aka.ms/fim_negativefilterissue



Applies to

FIM Build 4.1.3634.0 and 4.1.3646

 


Symptoms

The first symptoms noticed are errors when you try to create a set with negative conditions

FIM Portal

Screenshots

 

  

Error message

Error processing your request: The server was unwilling to perform the requested operation.

Reason: Unspecified.

Attributes:

Correlation Id: facc9263-960f-499e-bf7d-0241226b770a

Request Id:

Details: Request could not be dispatched.

 

Event viewer

The event viewer might display 3 errors that are related.

 

Error 1: Procedure ReRaiseException

Log Name: Forefront Identity Manager

Source: Microsoft.ResourceManagement

Date: 30/06/2015 22:57:20

Event ID: 3

Task Category: None

Level: Error

Keywords: Classic

User: N/A

Computer: FIMContoso.Contoso.local

Description:

/../

The following information was included with the event:

Reraised Error 50000, Level 15, State 1, Procedure ReRaiseException, Line 37, Message: Reraised Error 50000, Level 15, State 1, Procedure ReRaiseException, Line 37, Message: Reraised Error 156, Level 15, State 1, Procedure ?, Line 61, Message: Incorrect syntax near the keyword 'AND'.

Event Xml:

<Event xmlns="http://schemas.microsoft.com/win/2004/08/events/event">

 <System>

 <Provider Name="Microsoft.ResourceManagement" />

 <EventID Qualifiers="0">3</EventID>

 <Level>2</Level>

 <Task>0</Task>

 <Keywords>0x80000000000000</Keywords>

 <TimeCreated SystemTime="2015-06-30T20:57:20.000000000Z" />

 <EventRecordID>10615</EventRecordID>

 <Channel>Forefront Identity Manager</Channel>

 <Computer>FIMContoso.Contoso.local</Computer>

 <Security />

 </System>

 <EventData>

 <Data>Reraised Error 50000, Level 15, State 1, Procedure ReRaiseException, Line 37, Message: Reraised Error 50000, Level 15, State 1, Procedure ReRaiseException, Line 37, Message: Reraised Error 156, Level 15, State 1, Procedure ?, Line 61, Message: Incorrect syntax near the keyword 'AND'.</Data>

 </EventData>

</Event> 

Error 2: Inner Exception Error

Log Name: Forefront Identity Manager

Source: Microsoft.ResourceManagement

Date: 30/06/2015 22:57:20

Event ID: 3

Task Category: None

Level: Error

Keywords: Classic

User: N/A

Computer: FIMContoso.Contoso.local

Description:

/../

The following information was included with the event:

 

Microsoft.ResourceManagement.WebServices.Exceptions.UnwillingToPerformException: Other ---> System.Data.SqlClient.SqlException: Reraised Error 50000, Level 15, State 1, Procedure ReRaiseException, Line 37, Message: Reraised Error 50000, Level 15, State 1, Procedure ReRaiseException, Line 37, Message: Reraised Error 156, Level 15, State 1, Procedure ?, Line 61, Message: Incorrect syntax near the keyword 'AND'.

 at System.Data.SqlClient.SqlConnection.OnError(SqlException exception, Boolean breakConnection)

 at System.Data.SqlClient.TdsParser.ThrowExceptionAndWarning(TdsParserStateObject stateObj)

 at System.Data.SqlClient.TdsParser.Run(RunBehavior runBehavior, SqlCommand cmdHandler, SqlDataReader dataStream, BulkCopySimpleResultSet bulkCopyHandler, TdsParserStateObject stateObj)

 at System.Data.SqlClient.SqlDataReader.ConsumeMetaData()

 at System.Data.SqlClient.SqlDataReader.get_MetaData()

 at System.Data.SqlClient.SqlCommand.FinishExecuteReader(SqlDataReader ds, RunBehavior runBehavior, String resetOptionsString)

 at System.Data.SqlClient.SqlCommand.RunExecuteReaderTds(CommandBehavior cmdBehavior, RunBehavior runBehavior, Boolean returnStream, Boolean async)

 at System.Data.SqlClient.SqlCommand.RunExecuteReader(CommandBehavior cmdBehavior, RunBehavior runBehavior, Boolean returnStream, String method, DbAsyncResult result)

 at System.Data.SqlClient.SqlCommand.RunExecuteReader(CommandBehavior cmdBehavior, RunBehavior runBehavior, Boolean returnStream, String method)

 at System.Data.SqlClient.SqlCommand.ExecuteReader(CommandBehavior behavior, String method)

 at System.Data.SqlClient.SqlCommand.ExecuteReader()

 at Microsoft.ResourceManagement.Data.DataAccess.DoRequestCreation(RequestType request, Guid cause, Guid requestMarker, Boolean doEvaluation, Int16 serviceId, Int16 servicePartitionId)

 --- End of inner exception stack trace ---

 

Event Xml:

<Event xmlns="http://schemas.microsoft.com/win/2004/08/events/event">

 <System>

 <Provider Name="Microsoft.ResourceManagement" />

 <EventID Qualifiers="0">3</EventID>

 <Level>2</Level>

 <Task>0</Task>

 <Keywords>0x80000000000000</Keywords>

 <TimeCreated SystemTime="2015-06-30T20:57:20.000000000Z" />

 <EventRecordID>10616</EventRecordID>

 <Channel>Forefront Identity Manager</Channel>

 <Computer>FIMContoso.Contoso.local</Computer>

 <Security />

 </System>

 <EventData>

 <Data>Microsoft.ResourceManagement.WebServices.Exceptions.UnwillingToPerformException: Other ---&gt; System.Data.SqlClient.SqlException: Reraised Error 50000, Level 15, State 1, Procedure ReRaiseException, Line 37, Message: Reraised Error 50000, Level 15, State 1, Procedure ReRaiseException, Line 37, Message: Reraised Error 156, Level 15, State 1, Procedure ?, Line 61, Message: Incorrect syntax near the keyword 'AND'.

 at System.Data.SqlClient.SqlConnection.OnError(SqlException exception, Boolean breakConnection)

 at System.Data.SqlClient.TdsParser.ThrowExceptionAndWarning(TdsParserStateObject stateObj)

 at System.Data.SqlClient.TdsParser.Run(RunBehavior runBehavior, SqlCommand cmdHandler, SqlDataReader dataStream, BulkCopySimpleResultSet bulkCopyHandler, TdsParserStateObject stateObj)

 at System.Data.SqlClient.SqlDataReader.ConsumeMetaData()

 at System.Data.SqlClient.SqlDataReader.get_MetaData()

 at System.Data.SqlClient.SqlCommand.FinishExecuteReader(SqlDataReader ds, RunBehavior runBehavior, String resetOptionsString)

 at System.Data.SqlClient.SqlCommand.RunExecuteReaderTds(CommandBehavior cmdBehavior, RunBehavior runBehavior, Boolean returnStream, Boolean async)

 at System.Data.SqlClient.SqlCommand.RunExecuteReader(CommandBehavior cmdBehavior, RunBehavior runBehavior, Boolean returnStream, String method, DbAsyncResult result)

 at System.Data.SqlClient.SqlCommand.RunExecuteReader(CommandBehavior cmdBehavior, RunBehavior runBehavior, Boolean returnStream, String method)

 at System.Data.SqlClient.SqlCommand.ExecuteReader(CommandBehavior behavior, String method)

 at System.Data.SqlClient.SqlCommand.ExecuteReader()

 at Microsoft.ResourceManagement.Data.DataAccess.DoRequestCreation(RequestType request, Guid cause, Guid requestMarker, Boolean doEvaluation, Int16 serviceId, Int16 servicePartitionId)

 --- End of inner exception stack trace ---</Data>

 </EventData>

</Event> 

 

Error 3: FIM Service Error

Screenshot

Error message

Log Name: Forefront Identity Manager

Source: Microsoft.ResourceManagement

Date: 30/06/2015 22:57:20

Event ID: 3

Task Category: None

Level: Error

Keywords: Classic

User: N/A

Computer: FIMContoso.Contoso.local

Description:

/../ 

The following information was included with the event:

 

Requestor: urn:uuid:7fb2b853-24f0-4498-9534-4e10589723c4

Correlation Identifier: 0e25d080-0a1d-4876-b41c-aa8df1d74c56

Microsoft.ResourceManagement.Service: Microsoft.ResourceManagement.WebServices.Exceptions.UnwillingToPerformException: Other ---> System.Data.SqlClient.SqlException: Reraised Error 50000, Level 15, State 1, Procedure ReRaiseException, Line 37, Message: Reraised Error 50000, Level 15, State 1, Procedure ReRaiseException, Line 37, Message: Reraised Error 156, Level 15, State 1, Procedure ?, Line 61, Message: Incorrect syntax near the keyword 'AND'.

 at System.Data.SqlClient.SqlConnection.OnError(SqlException exception, Boolean breakConnection)

 at System.Data.SqlClient.TdsParser.ThrowExceptionAndWarning(TdsParserStateObject stateObj)

 at System.Data.SqlClient.TdsParser.Run(RunBehavior runBehavior, SqlCommand cmdHandler, SqlDataReader dataStream, BulkCopySimpleResultSet bulkCopyHandler, TdsParserStateObject stateObj)

 at System.Data.SqlClient.SqlDataReader.ConsumeMetaData()

 at System.Data.SqlClient.SqlDataReader.get_MetaData()

 at System.Data.SqlClient.SqlCommand.FinishExecuteReader(SqlDataReader ds, RunBehavior runBehavior, String resetOptionsString)

 at System.Data.SqlClient.SqlCommand.RunExecuteReaderTds(CommandBehavior cmdBehavior, RunBehavior runBehavior, Boolean returnStream, Boolean async)

 at System.Data.SqlClient.SqlCommand.RunExecuteReader(CommandBehavior cmdBehavior, RunBehavior runBehavior, Boolean returnStream, String method, DbAsyncResult result)

 at System.Data.SqlClient.SqlCommand.RunExecuteReader(CommandBehavior cmdBehavior, RunBehavior runBehavior, Boolean returnStream, String method)

 at System.Data.SqlClient.SqlCommand.ExecuteReader(CommandBehavior behavior, String method)

 at System.Data.SqlClient.SqlCommand.ExecuteReader()

 at Microsoft.ResourceManagement.Data.DataAccess.DoRequestCreation(RequestType request, Guid cause, Guid requestMarker, Boolean doEvaluation, Int16 serviceId, Int16 servicePartitionId)

 --- End of inner exception stack trace ---

 at Microsoft.ResourceManagement.WebServices.RequestDispatcher.CreateRequest(UniqueIdentifier requestor, UniqueIdentifier targetIdentifier, OperationType operation, String businessJustification, List`1 requestParameters, CultureInfo locale, Boolean isChildRequest, Guid cause, Boolean doEvaluation, Nullable`1 serviceId, Nullable`1 servicePartitionId, UniqueId messageIdentifier, UniqueIdentifier requestContextIdentifier, Boolean maintenanceMode)

 at Microsoft.ResourceManagement.WebServices.RequestDispatcher.CreateRequest(UniqueIdentifier requestor, UniqueIdentifier targetIdentifier, OperationType operation, String businessJustification, List`1 requestParameters, CultureInfo locale, Boolean isChildRequest, Guid cause, Boolean doEvaluation, Nullable`1 serviceId, Nullable`1 servicePartitionId, UniqueId messageIdentifier)

 at Microsoft.ResourceManagement.WebServices.ResourceManagementService.Create(Message request)

 

Event Xml:

<Event xmlns="http://schemas.microsoft.com/win/2004/08/events/event">

 <System>

 <Provider Name="Microsoft.ResourceManagement" />

 <EventID Qualifiers="0">3</EventID>

 <Level>2</Level>

 <Task>0</Task>

 <Keywords>0x80000000000000</Keywords>

 <TimeCreated SystemTime="2015-06-30T20:57:20.000000000Z" />

 <EventRecordID>10617</EventRecordID>

 <Channel>Forefront Identity Manager</Channel>

 <Computer>FIMContoso.Contoso.local</Computer>

 <Security />

 </System>

 <EventData>

 <Data>Requestor: urn:uuid:7fb2b853-24f0-4498-9534-4e10589723c4

Correlation Identifier: 0e25d080-0a1d-4876-b41c-aa8df1d74c56

Microsoft.ResourceManagement.Service: Microsoft.ResourceManagement.WebServices.Exceptions.UnwillingToPerformException: Other ---&gt; System.Data.SqlClient.SqlException: Reraised Error 50000, Level 15, State 1, Procedure ReRaiseException, Line 37, Message: Reraised Error 50000, Level 15, State 1, Procedure ReRaiseException, Line 37, Message: Reraised Error 156, Level 15, State 1, Procedure ?, Line 61, Message: Incorrect syntax near the keyword 'AND'.

 at System.Data.SqlClient.SqlConnection.OnError(SqlException exception, Boolean breakConnection)

 at System.Data.SqlClient.TdsParser.ThrowExceptionAndWarning(TdsParserStateObject stateObj)

 at System.Data.SqlClient.TdsParser.Run(RunBehavior runBehavior, SqlCommand cmdHandler, SqlDataReader dataStream, BulkCopySimpleResultSet bulkCopyHandler, TdsParserStateObject stateObj)

 at System.Data.SqlClient.SqlDataReader.ConsumeMetaData()

 at System.Data.SqlClient.SqlDataReader.get_MetaData()

 at System.Data.SqlClient.SqlCommand.FinishExecuteReader(SqlDataReader ds, RunBehavior runBehavior, String resetOptionsString)

 at System.Data.SqlClient.SqlCommand.RunExecuteReaderTds(CommandBehavior cmdBehavior, RunBehavior runBehavior, Boolean returnStream, Boolean async)

 at System.Data.SqlClient.SqlCommand.RunExecuteReader(CommandBehavior cmdBehavior, RunBehavior runBehavior, Boolean returnStream, String method, DbAsyncResult result)

 at System.Data.SqlClient.SqlCommand.RunExecuteReader(CommandBehavior cmdBehavior, RunBehavior runBehavior, Boolean returnStream, String method)

 at System.Data.SqlClient.SqlCommand.ExecuteReader(CommandBehavior behavior, String method)

 at System.Data.SqlClient.SqlCommand.ExecuteReader()

 at Microsoft.ResourceManagement.Data.DataAccess.DoRequestCreation(RequestType request, Guid cause, Guid requestMarker, Boolean doEvaluation, Int16 serviceId, Int16 servicePartitionId)

 --- End of inner exception stack trace ---

 at Microsoft.ResourceManagement.WebServices.RequestDispatcher.CreateRequest(UniqueIdentifier requestor, UniqueIdentifier targetIdentifier, OperationType operation, String businessJustification, List`1 requestParameters, CultureInfo locale, Boolean isChildRequest, Guid cause, Boolean doEvaluation, Nullable`1 serviceId, Nullable`1 servicePartitionId, UniqueId messageIdentifier, UniqueIdentifier requestContextIdentifier, Boolean maintenanceMode)

 at Microsoft.ResourceManagement.WebServices.RequestDispatcher.CreateRequest(UniqueIdentifier requestor, UniqueIdentifier targetIdentifier, OperationType operation, String businessJustification, List`1 requestParameters, CultureInfo locale, Boolean isChildRequest, Guid cause, Boolean doEvaluation, Nullable`1 serviceId, Nullable`1 servicePartitionId, UniqueId messageIdentifier)

 at Microsoft.ResourceManagement.WebServices.ResourceManagementService.Create(Message request)</Data>

 </EventData>

</Event>

 

 


Solution

 Important
To solve the error described in this article, a stored procedure in the FIMService database must be changed.

But it's not supported to change the FIMService on your own initiative.

 

You must request a MS Support fix for an SQL stored procedure: fim.GenerateMembershipConditionStatementNegativeLiteralValueSQL