@@ -15,7 +15,8 @@ namespace Microsoft.DurableTask;
1515/// <param name="ErrorMessage">A summary description of the failure.</param>
1616/// <param name="StackTrace">The stack trace of the failure.</param>
1717/// <param name="InnerFailure">The inner cause of the task failure.</param>
18- public record TaskFailureDetails ( string ErrorType , string ErrorMessage , string ? StackTrace , TaskFailureDetails ? InnerFailure )
18+ /// <param name="Properties">Additional properties associated with the exception.</param>
19+ public record TaskFailureDetails ( string ErrorType , string ErrorMessage , string ? StackTrace , TaskFailureDetails ? InnerFailure , IDictionary < string , object > ? Properties )
1920{
2021 Type ? loadedExceptionType ;
2122
@@ -123,7 +124,8 @@ internal CoreFailureDetails ToCoreFailureDetails()
123124 this . ErrorMessage ,
124125 this . StackTrace ,
125126 this . InnerFailure ? . ToCoreFailureDetails ( ) ,
126- isNonRetriable : false ) ;
127+ isNonRetriable : false ,
128+ this . Properties ) ;
127129 }
128130
129131 /// <summary>
@@ -143,7 +145,8 @@ internal CoreFailureDetails ToCoreFailureDetails()
143145 coreFailureDetails . ErrorType ,
144146 coreFailureDetails . ErrorMessage ,
145147 coreFailureDetails . StackTrace ,
146- FromCoreFailureDetails ( coreFailureDetails . InnerFailure ) ) ;
148+ FromCoreFailureDetails ( coreFailureDetails . InnerFailure ) ,
149+ coreFailureDetails . Properties ) ;
147150 }
148151
149152 [ return : NotNullIfNotNull ( nameof ( exception ) ) ]
@@ -160,14 +163,16 @@ internal CoreFailureDetails ToCoreFailureDetails()
160163 coreEx . FailureDetails ? . ErrorType ?? "(unknown)" ,
161164 coreEx . FailureDetails ? . ErrorMessage ?? "(unknown)" ,
162165 coreEx . FailureDetails ? . StackTrace ,
163- FromCoreFailureDetailsRecursive ( coreEx . FailureDetails ? . InnerFailure ) ?? FromExceptionRecursive ( coreEx . InnerException ) ) ;
166+ FromCoreFailureDetailsRecursive ( coreEx . FailureDetails ? . InnerFailure ) ?? FromExceptionRecursive ( coreEx . InnerException ) ,
167+ coreEx . FailureDetails ? . Properties ?? null ) ;
164168 }
165169
166170 return new TaskFailureDetails (
167171 exception . GetType ( ) . ToString ( ) ,
168172 exception . Message ,
169173 exception . StackTrace ,
170- FromExceptionRecursive ( exception . InnerException ) ) ;
174+ FromExceptionRecursive ( exception . InnerException ) ,
175+ null ) ; // might need to udpate this later
171176 }
172177
173178 static TaskFailureDetails ? FromCoreFailureDetailsRecursive ( CoreFailureDetails ? coreFailureDetails )
@@ -181,6 +186,7 @@ internal CoreFailureDetails ToCoreFailureDetails()
181186 coreFailureDetails . ErrorType ,
182187 coreFailureDetails . ErrorMessage ,
183188 coreFailureDetails . StackTrace ,
184- FromCoreFailureDetailsRecursive ( coreFailureDetails . InnerFailure ) ) ;
189+ FromCoreFailureDetailsRecursive ( coreFailureDetails . InnerFailure ) ,
190+ coreFailureDetails . Properties ) ;
185191 }
186192}
0 commit comments