Azure / Azure/azure-functions-durable-python

Activities that fail with complex exceptions do not preserve inner exceptions

Ouverte
#561 1 commentaire 0 réactions 0 personnes assignées Voir sur GitHub
bug fixed-in-v2 P2
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

Recevez les nouvelles issues par e-mail

Un résumé court des issues GitHub adaptées aux débutants.