Got it. This happens when the dataset specified in C# code does not exactly match the DataSet in the RDLC. So, this line in C#:
reportDataSources[0] = new ReportDataSource("SomeOtherDataSetName", rowListData);
needs to match with the DataSet name specified in the RDLC. In the given scenario, that first parameter in the ReportDataSource should have been "MyDataSetName" rather than "SomeOtherDataSetName" -- or else, the Exception chain I mentioned above will occur.