diff --git a/src/Microsoft.SqlTools.ServiceLayer/QueryExecution/Contracts/SaveResultsRequest.cs b/src/Microsoft.SqlTools.ServiceLayer/QueryExecution/Contracts/SaveResultsRequest.cs
index 369fdb67..85f87b9d 100644
--- a/src/Microsoft.SqlTools.ServiceLayer/QueryExecution/Contracts/SaveResultsRequest.cs
+++ b/src/Microsoft.SqlTools.ServiceLayer/QueryExecution/Contracts/SaveResultsRequest.cs
@@ -84,6 +84,17 @@ namespace Microsoft.SqlTools.ServiceLayer.QueryExecution.Contracts
public string Messages { get; set; }
}
+ ///
+ /// Error object for save result
+ ///
+ public class SaveResultRequestError
+ {
+ ///
+ /// Error message
+ ///
+ public string message { get; set; }
+ }
+
///
/// Request type to save results as CSV
///
diff --git a/src/Microsoft.SqlTools.ServiceLayer/QueryExecution/QueryExecutionService.cs b/src/Microsoft.SqlTools.ServiceLayer/QueryExecution/QueryExecutionService.cs
index 9819504d..ea69514b 100644
--- a/src/Microsoft.SqlTools.ServiceLayer/QueryExecution/QueryExecutionService.cs
+++ b/src/Microsoft.SqlTools.ServiceLayer/QueryExecution/QueryExecutionService.cs
@@ -280,7 +280,7 @@ namespace Microsoft.SqlTools.ServiceLayer.QueryExecution
SaveResults.AsyncSaveEventHandler errorHandler = async message =>
{
selectedResultSet.RemoveSaveTask(saveParams.FilePath);
- await requestContext.SendError(message);
+ await requestContext.SendError(new SaveResultRequestError { message = message });
};
saveAsCsv.SaveFailed += errorHandler;
@@ -323,7 +323,7 @@ namespace Microsoft.SqlTools.ServiceLayer.QueryExecution
SaveResults.AsyncSaveEventHandler errorHandler = async message =>
{
selectedResultSet.RemoveSaveTask(saveParams.FilePath);
- await requestContext.SendError(message);
+ await requestContext.SendError(new SaveResultRequestError { message = message });
};
saveAsJson.SaveFailed += errorHandler;
diff --git a/src/Microsoft.SqlTools.ServiceLayer/QueryExecution/SaveResults.cs b/src/Microsoft.SqlTools.ServiceLayer/QueryExecution/SaveResults.cs
index 6fd3a505..713eb764 100644
--- a/src/Microsoft.SqlTools.ServiceLayer/QueryExecution/SaveResults.cs
+++ b/src/Microsoft.SqlTools.ServiceLayer/QueryExecution/SaveResults.cs
@@ -222,7 +222,7 @@ namespace Microsoft.SqlTools.ServiceLayer.QueryExecution
}
if (SaveFailed != null)
{
- await SaveFailed(ex.ToString());
+ await SaveFailed(ex.Message);
}
}
});
diff --git a/test/Microsoft.SqlTools.ServiceLayer.Test/QueryExecution/SaveResultsTests.cs b/test/Microsoft.SqlTools.ServiceLayer.Test/QueryExecution/SaveResultsTests.cs
index 161e255b..470476c2 100644
--- a/test/Microsoft.SqlTools.ServiceLayer.Test/QueryExecution/SaveResultsTests.cs
+++ b/test/Microsoft.SqlTools.ServiceLayer.Test/QueryExecution/SaveResultsTests.cs
@@ -137,8 +137,8 @@ namespace Microsoft.SqlTools.ServiceLayer.Test.QueryExecution
FilePath = RuntimeInformation.IsOSPlatform(OSPlatform.Windows) ? "G:\\test.csv" : "/test.csv"
};
- string errMessage = null;
- var saveRequest = GetSaveResultsContextMock( null, err => errMessage = (string) err);
+ SaveResultRequestError errMessage = null;
+ var saveRequest = GetSaveResultsContextMock( null, err => errMessage = (SaveResultRequestError) err);
queryService.ActiveQueries[Common.OwnerUri].Batches[0] = Common.GetBasicExecutedBatch();
// Call save results and wait on the save task
@@ -296,8 +296,8 @@ namespace Microsoft.SqlTools.ServiceLayer.Test.QueryExecution
};
- string errMessage = null;
- var saveRequest = GetSaveResultsContextMock( null, err => errMessage = (string) err);
+ SaveResultRequestError errMessage = null;
+ var saveRequest = GetSaveResultsContextMock( null, err => errMessage = (SaveResultRequestError) err);
queryService.ActiveQueries[Common.OwnerUri].Batches[0] = Common.GetBasicExecutedBatch();
// Call save results and wait on the save task