Expected Behavior
OperationStartInfo.start_time should always be before OperationEndInfo.end_time.
Actual Behavior
OperationStartInfo.start_time uses datetime.now(), while OperationEndInfo.end_time uses recorded operation timestamps.
It is possible for operations to record an end_time that precedes the now() call, resulting in a negative duration. Plugins consuming these callbacks will get invalid timings.
Steps to Reproduce
- Register a plugin that records the start time from
on_operation_start and on_operation_end.
- Run a durable handler with a fast context step (returns immediately).
- Compare the start/end times in
OperationStartInfo and OperationEndInfo
SDK Version
1.7.0
Python Version
3.14
Is this a regression?
No
Last Working Version
No response
Additional Context
No response
Expected Behavior
OperationStartInfo.start_timeshould always be beforeOperationEndInfo.end_time.Actual Behavior
OperationStartInfo.start_timeusesdatetime.now(), whileOperationEndInfo.end_timeuses recorded operation timestamps.It is possible for operations to record an
end_timethat precedes thenow()call, resulting in a negative duration. Plugins consuming these callbacks will get invalid timings.Steps to Reproduce
on_operation_startandon_operation_end.OperationStartInfoandOperationEndInfoSDK Version
1.7.0
Python Version
3.14
Is this a regression?
No
Last Working Version
No response
Additional Context
No response