Azure / Azure/azure-functions-durable-python
Activities that fail with complex exceptions do not preserve inner exceptions
- Langage dominant
- Python
- Étoiles
- 157
- Forks
- 70
- Merge moyen
- 2 j 10 h
- PR mergées (30 j)
- 2
Description
🐛 **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
Guide de contribution
Ouvrir le guide de contribution
Piste de recherche
Commencez par le chemin du worker Python indiqué dans le traceback, en particulier dans azure_functions_worker/dispatcher.py autour de _handle__invocation_request. Reproduisez l’échec de l’activité à l’aide de la chaîne d’exceptions fournie et examinez comment l’échec est sérialisé et journalisé. C’est terminé lorsque les logs incluent à la fois l’InvalidOperationException externe et sa cause OverflowException.
Rédigé par le modèle d'indexation à partir du texte de l'issue.
Évaluation
- Stack technique
- python
- Domaine
- backend, observability
- Type d'issue
- Bug
- Difficulté
- 3/5
- Temps estimé
- 1-2 jours
- Activité
- Calme
- Clarté
- Plutôt claire
- Accessibilité débutants
- 52/100