FIX: Assertion occurs when you pass memory-optimized table variable into a stored procedure as table-valued parameter in SQL Server 2016 and 2017

Applies to: SQL Server 2016 Service Pack 1SQL Server 2016 DeveloperSQL Server 2016 Enterprise

Symptoms


Assume that you use In-Memory Online Transaction Processing (OLTP) in Microsoft SQL Server 2016 and 2017. When you pass a memory-optimized table variable into a stored procedure as a table-valued parameter (TVP), an assertion error might occur. Additionally, a dump file is generated by SQL Server.

Location:              "interop.cpp":LineNumber
Expression:         false
SPID:                    SPID
Process ID:          ProcessID
Msg 3624, Level 20, State 1, Procedure ProcedureName, Line LineNumber [Batch Start Line LineNumber]

A system assertion check has failed. Check the SQL Server error log for details. Typically, an assertion failure is caused by a software bug or data corruption. To check for database corruption, consider running DBCC CHECKDB. If you agreed to send dumps to Microsoft during setup, a mini dump will be sent to Microsoft. An update might be available from Microsoft in the latest Service Pack or in a Hotfix from Technical Support.

Msg 596, Level 21, State 1, Line LineNumber
Cannot continue the execution because the session is in the kill state.
Msg 0, Level 20, State 0, Line LineNumber
A severe error occurred on the current command.  The results, if any, should be discarded.

Resolution


This issue is fixed in the following cumulative update for SQL Server:

       Cumulative Update 4 for SQL Server 2017

       Cumulative Update 7 for SQL Server 2016 SP1

Status


Microsoft has confirmed that this is a problem in the Microsoft products that are listed in the "Applies to" section.

References


Learn about the terminology that Microsoft uses to describe software updates.