From c841b3511f52f37e2dce1702e945eb3cd1f66ea6 Mon Sep 17 00:00:00 2001 From: Sipke Schoorstra Date: Wed, 22 Nov 2023 20:46:40 +0100 Subject: [PATCH] Handle attempts to serialize unserializable values --- .../Elsa.Http/Activities/WriteHttpResponse.cs | 16 +++++++++++++--- 1 file changed, 13 insertions(+), 3 deletions(-) diff --git a/src/modules/Elsa.Http/Activities/WriteHttpResponse.cs b/src/modules/Elsa.Http/Activities/WriteHttpResponse.cs index f1eabd8c0..7fd01669e 100644 --- a/src/modules/Elsa.Http/Activities/WriteHttpResponse.cs +++ b/src/modules/Elsa.Http/Activities/WriteHttpResponse.cs @@ -22,7 +22,7 @@ public class WriteHttpResponse : Activity public WriteHttpResponse([CallerFilePath] string? source = default, [CallerLineNumber] int? line = default) : base(source, line) { } - + /// /// The status code to return. /// @@ -113,9 +113,19 @@ public class WriteHttpResponse : Activity // Write content. if (statusCode != HttpStatusCode.NoContent) - await httpContent.CopyToAsync(response.Body); + { + try + { + await httpContent.CopyToAsync(response.Body); + } + catch (NotSupportedException) + { + // This can happen the Content property is a type that cannot be serialized or contains a type that cannot be serialized. + await response.WriteAsync("The response includes a type that cannot be serialized."); + } + } } - + // Complete activity. await context.CompleteActivityAsync(); }