Azure / Azure/azure-functions-durable-python

Activities that fail with complex exceptions do not preserve inner exceptions

Aperta
#561 1 commento 0 reazioni 0 assegnatari Vedi su GitHub
bug fixed-in-v2 P2
Lingua principale
Python
Stelle
157
Fork
70
Merge medio
2g 10h
PR unite (30g)
2

Descrizione

🐛 **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

Guida per i contributori

Apri la guida per i contributori

Direzione di ricerca

Inizia dal percorso del worker Python mostrato nel traceback, in particolare in azure_functions_worker/dispatcher.py intorno a _handle__invocation_request. Riproduci il fallimento dell'attività usando la catena di eccezioni fornita e verifica come il fallimento viene serializzato e registrato. Il lavoro è completato quando i log includono sia l'InvalidOperationException esterna sia la relativa causa OverflowException.

Scritto dal modello di indicizzazione a partire dal testo della issue.

Valutazione

Stack tecnologico
python
Ambito
backend, observability
Tipo di issue
Bug
Difficoltà
3/5
Tempo stimato
1-2 giorni
Stato di attività
Tranquilla
Chiarezza
Abbastanza chiara
Idoneità per principianti
52/100

Ricevi le nuove issue nella tua casella

Un breve riepilogo di issue GitHub adatte ai principianti.