Azure / Azure/azure-functions-durable-python

DTS - Failed activities return a broken error message

Aperta
#562 2 commenti 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**
In AzureStorage or MSSQL, if an activity function fails, the orchestrator gets back an exception with relevant information about how the activity failed.
In DTS, you get back None

🤔 **Expected behavior**
When an activity function fails, the yield statement from the orchestrator should throw an exception with relevant information about how the activity failed, including the message from the exception thrown by the activity.

☕ **Steps to reproduce**
Orchestrator and activity:
```python

@bp.orchestration_trigger(context_name="context", orchestration="CatchActivityException")
def catch_activity_exception(context: df.DurableOrchestrationContext):
try:
yield context.call_activity('raise_exception', context.instance_id)
except Exception as e:
logging.error(f"Caught exception: {e}")
return f"Caught exception: {e}"

@bp.activity_trigger(input_name="instance")
def raise_exception(instance: str) -> str:
global attempt_count
if instance not in attempt_count:
attempt_count[instance] = 1
raise InvalidOperationException(f"This activity failed")
return "This activity succeeded"
```

The return value for Azure Storage/MSSQL:

```
Caught exception: Activity function 'raise_exception' failed:
```

The return value for DTS:
```
Caught exception: None \n None
```

⚡**If deployed to Azure**
N/A

Guida per i contributori

Apri la guida per i contributori

Direzione di ricerca

Start with the DTS path used by context.call_activity and compare how failed activity exceptions are propagated with the Azure Storage and MSSQL paths described in the issue. Reproduce the CatchActivityException orchestration and verify that the caught exception includes the activity failure message instead of `None`.

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

Valutazione

Stack tecnologico
azure, python
Ambito
backend, distributed-systems
Tipo di issue
Bug
Difficoltà
3/5
Tempo stimato
1-2 giorni
Stato di attività
Ferma
Chiarezza
Abbastanza chiara
Idoneità per principianti
45/100

Ricevi le nuove issue nella tua casella

Un breve riepilogo di issue GitHub adatte ai principianti.