Azure / Azure/azure-functions-durable-python

DTS - purge_instance_history_by throws "Exception: The operation failed with an unexpected status code 400"

Offen
#563 1 Kommentar 0 Reaktionen 0 zugewiesene Personen Auf GitHub ansehen
bug fixed-in-v2 P2
Vorherrschende Sprache
Python
Sterne
157
Forks
70
Ø Merge
2 T. 10 Std.
Gemergte PRs (30 T.)
2

Beschreibung

🐛 **Describe the bug**
If you call purge_instance_history_by when using the DTS backend, you get the following error: Exception: The operation failed with an unexpected status code 400

🤔 **Expected behavior**
purge_instance_history_by should successfully purge instance history based on the input params

☕ **Steps to reproduce**
Function code:

```python
@bp.route(route="PurgeOrchestrationHistory", methods=["GET", "POST"])
@bp.durable_client_input(client_name="client")
async def purge_history(req: func.HttpRequest, client: df.DurableOrchestrationClient):
logging.info("Starting purge all instance history")
try:
# Parse optional query parameters for purgeStartTime and purgeEndTime
purge_start_time: Optional[datetime] = None
purge_end_time: Optional[datetime] = None
if req.params.get("purgeStartTime"):
purge_start_time = datetime.fromisoformat(req.params["purgeStartTime"])
if req.params.get("purgeEndTime"):
purge_end_time = datetime.fromisoformat(req.params["purgeEndTime"])

# Purge orchestration history
result = await client.purge_instance_history_by(
created_time_from=purge_start_time,
created_time_to=purge_end_time,
runtime_status=[
df.OrchestrationRuntimeStatus.Completed,
df.OrchestrationRuntimeStatus.Failed,
df.OrchestrationRuntimeStatus.Terminated,
],
)
logging.info("Finished purge all instance history")
return func.HttpResponse(
f"Purged {result.instances_deleted} records",
status_code=200,
mimetype="text/plain"
)
except Exception as ex:
logging.error("Failed to purge all instance history", exc_info=True)
return func.HttpResponse(
f"Failed to purge all instance history: {str(ex)}",
status_code=500,
mimetype="text/plain"
)
```

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

Beitragsleitfaden

Beitragsleitfaden öffnen

Rechercherichtung

Beginne damit, den Einstiegspunkt purge_instance_history_by und die DTS-Backend-Anfrage, die er stellt, zu lokalisieren. Reproduziere anschließend den Aufruf mit den im Issue angegebenen Laufzeitstatuswerten und optionalen Zeitgrenzen. Verfolge die 400-Antwort und überprüfe, dass der Vorgang erfolgreich ist und die erwartete Anzahl gelöschter Instanzen meldet.

Vom Indexierungsmodell aus dem Issue-Text verfasst.

Bewertung

Tech-Stack
python
Bereich
api, backend
Issue-Typ
Bug
Schwierigkeit
3/5
Geschätzter Aufwand
1-2 Tage
Aktivitätsstatus
Ruhig
Klarheit
Größtenteils klar
Anfängerfreundlichkeit
58/100

Neue Issues direkt in Ihr Postfach

Eine kurze Übersicht über anfängerfreundliche GitHub-Issues.