Azure / Azure/azure-functions-durable-python
Activities that fail with complex exceptions do not preserve inner exceptions
- 主要语言
- Python
- 星标
- 157
- 派生
- 70
- 平均合并
- 2 天 10 小时
- 30 天内合并 PR
- 2
描述
🐛 **Describe the bug**
> When an activity fails with a complex exception (exception derived from inner exception), the inner exception is not preserved to the logs
🤔 **Expected behavior**
> Inner exceptions should be logged as well as outer
☕ **Steps to reproduce**
Function code:
```python
@bp.activity_trigger(input_name="instance2")
def raise_complex_exception(instance2: str) -> str:
global attempt_count
if instance2 not in attempt_count:
attempt_count[instance2] = 1
raise InvalidOperationException(f"This activity failed") from OverflowException(
"More information about the failure")
return "This activity succeeded"
```
Output:
```
[2025-07-10T22:27:53.159Z] Executed 'Functions.raise_complex_exception' (Failed, Id=be9eec7c-214e-4c34-9570-4d123863f196, Duration=35ms)
[2025-07-10T22:27:53.160Z] System.Private.CoreLib: Exception while executing function: Functions.raise_complex_exception. System.Private.CoreLib: Result: Failure
Exception: InvalidOperationException: This activity failed
Stack: File "C:\Program Files\Microsoft\Azure Functions Core Tools\workers\python\3.11/WINDOWS/X64\azure_functions_worker\dispatcher.py", line 671, in _handle__invocation_request
call_result = await self._loop.run_in_executor(
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
...
```
⚡**If deployed to Azure**
N/A
贡献指南
调研方向
从 traceback 中显示的 Python worker 路径开始,特别检查 azure_functions_worker/dispatcher.py 中 _handle__invocation_request 附近的代码。使用提供的异常链重现活动失败,并检查该失败是如何被序列化和记录的。当日志同时包含外层 InvalidOperationException 及其 OverflowException 原因时,即表示完成。
由索引模型根据 Issue 内容生成。
评估
- 技术栈
- python
- 领域
- backend, observability
- Issue 类型
- 缺陷
- 难度
- 3/5
- 预计耗时
- 1-2 天
- 活跃度
- 冷清
- 描述清晰度
- 基本清楚
- 新手友好度
- 52/100