@@ -156,7 +156,7 @@ func runService(ctx context.Context, taskLogger Logger, event ServiceStartEvent)
156156
157157					taskLogger .Error ().Msg (recovered .Error ())
158158					err2  :=  ErrInternal .Wrap (recovered )
159- 					evt  =  ErrorToServiceComplete (err2 )
159+ 					evt  =  ErrorToServiceComplete (err2 ,  stackTrace )
160160				}
161161			} else  {
162162				stackTrace  :=  string (debug .Stack ())
@@ -165,7 +165,7 @@ func runService(ctx context.Context, taskLogger Logger, event ServiceStartEvent)
165165				errorStr  :=  fmt .Sprintf ("recoverted %v" , r )
166166				taskLogger .Error ().Msg (errorStr )
167167				err2  :=  ErrInternal .Wrap (fmt .Errorf (errorStr ))
168- 				evt  =  ErrorToServiceComplete (err2 )
168+ 				evt  =  ErrorToServiceComplete (err2 ,  stackTrace )
169169			}
170170		}
171171	}()
@@ -174,7 +174,7 @@ func runService(ctx context.Context, taskLogger Logger, event ServiceStartEvent)
174174	if  err  !=  nil  {
175175		err2  :=  ErrServiceExecError .Wrap (err )
176176		taskLogger .Error ().Msg (err2 .Error ())
177- 		return  ErrorToServiceComplete (err2 )
177+ 		return  ErrorToServiceComplete (err2 ,  "" )
178178	}
179179
180180	meta  :=  ServiceMeta {
@@ -185,21 +185,21 @@ func runService(ctx context.Context, taskLogger Logger, event ServiceStartEvent)
185185	if  err  !=  nil  {
186186		err2  :=  ErrServiceExecError .Wrap (err )
187187		taskLogger .Error ().Msg (err2 .Error ())
188- 		return  ErrorToServiceComplete (err2 )
188+ 		return  ErrorToServiceComplete (err2 ,  "" )
189189	}
190190
191191	err  =  ConvertType (event .Input , inputObj )
192192	if  err  !=  nil  {
193193		err2  :=  ErrBadRequest .Wrap (err )
194194		taskLogger .Error ().Msg (err2 .Error ())
195- 		return  ErrorToServiceComplete (err2 )
195+ 		return  ErrorToServiceComplete (err2 ,  "" )
196196	}
197197
198198	err  =  currentValidator .Validate (inputObj )
199199	if  err  !=  nil  {
200200		err2  :=  ErrBadRequest .Wrap (err )
201201		taskLogger .Error ().Msg (err2 .Error ())
202- 		return  ErrorToServiceComplete (err2 )
202+ 		return  ErrorToServiceComplete (err2 ,  "" )
203203	}
204204
205205	ctxImpl  :=  & ContextImpl {
@@ -227,7 +227,7 @@ func runService(ctx context.Context, taskLogger Logger, event ServiceStartEvent)
227227	if  err  !=  nil  {
228228		err2  :=  ErrServiceExecError .Wrap (err )
229229		taskLogger .Error ().Msg (err2 .Error ())
230- 		return  ErrorToServiceComplete (err2 )
230+ 		return  ErrorToServiceComplete (err2 ,  "" )
231231	}
232232
233233	taskLogger .Info ().Msg ("service completed" )
@@ -330,11 +330,22 @@ func ValueToServiceComplete(output any) ServiceCompleteEvent {
330330	}
331331}
332332
333- func  ErrorToServiceComplete (err  Error ) ServiceCompleteEvent  {
333+ func  ErrorToServiceComplete (err  Error , stacktraceStr  string ) ServiceCompleteEvent  {
334+ 	var  stacktrace  Stacktrace 
335+ 	if  stacktraceStr  !=  ""  {
336+ 		stacktrace  =  Stacktrace {
337+ 			Stacktrace :   stacktraceStr ,
338+ 			IsAvailable :  true ,
339+ 			IsCompressed : false ,
340+ 		}
341+ 		_  =  stacktrace .Compress ()
342+ 	}
343+ 
334344	return  ServiceCompleteEvent {
335- 		Output :  nil ,
336- 		IsError : true ,
337- 		Error :   err ,
345+ 		Output :     nil ,
346+ 		IsError :    true ,
347+ 		Error :      err ,
348+ 		Stacktrace : stacktrace ,
338349	}
339350}
340351
0 commit comments