SSRS – rsInvalidReportDefinition RDL not well-formed Error

It is common to see these errors when migrating SSRS reports from earlier versions of SQL Server to later versions or viceversa.
However please do remember that most of SSIS, SSAS, SSRS projects are not completely backward compatible. So in a nutshell a report developed in SQL/SSRS 2016 need not necessarily render in SQL/SSRS 2008 R2. (for example the report parameter layout changes are NOT even existant in earlier versions of SQL server).

Common Errors seen when trying to render incompatible version of RDL on a different version of SQL Server engine.

[rsInvalidReportDefinition] The definition of this report is not valid or supported by this version of Reporting Services.

The report definition may have been created with a later version of Reporting Services, or contain content that is not well-formed or not valid based on Reporting Services schemas.

Details: There are multiple root elements. Line 24, position 107822. C:\Users\xxx.rdl

Details: Data at the root level is invalid. Line 66, position 59916. C:\Users\xxx.rdl

Reason :

    The RDL file (i.e XML source code) is not well formed XML when connected to different version of SQL Server engine then what it is compatible with (depending on the version of SSDT/BIDS) and thus breaking the contract, so the SQL engine cannot parse XML.

Solution :

1) Say if you are connecting to SQL 2016 datasource as relational engine using Visual Studio 2015 then change the targetserver version property to SQL 2016 as below.
(similarly if you are connecting to SQL 2008 R2 using BIDS or Visual Studio 2008 then change the targetserver version to SQL 2008 R2)

SSRS Project Settings 01

SSRS Project Settings 02

Leave a Comment

NOTE - You can use these HTML tags and attributes:
<a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>