From ebbba82544345025081521462a42e05932848734 Mon Sep 17 00:00:00 2001 From: Dhanushree-Microsoft Date: Fri, 5 Jun 2026 11:25:10 +0530 Subject: [PATCH] fix: remove unused WorkflowEvent import and restore 'invalid content' retry check - Remove unused WorkflowEvent import from migration_processor.py (fixes lint F401) - Restore 'model produced invalid content' transient error retry in azure_openai_response_retry.py (regression from agent-framework 1.3.0 refactor) Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> --- .../libs/agent_framework/azure_openai_response_retry.py | 8 ++++++++ src/processor/src/steps/migration_processor.py | 2 +- 2 files changed, 9 insertions(+), 1 deletion(-) diff --git a/src/processor/src/libs/agent_framework/azure_openai_response_retry.py b/src/processor/src/libs/agent_framework/azure_openai_response_retry.py index e19a1bf..9369500 100644 --- a/src/processor/src/libs/agent_framework/azure_openai_response_retry.py +++ b/src/processor/src/libs/agent_framework/azure_openai_response_retry.py @@ -82,6 +82,14 @@ def _looks_like_rate_limit(error: BaseException) -> bool: if isinstance(status, int) and 500 <= status < 600: return True + # "The model produced invalid content" is a transient error from Azure OpenAI + # when the model output fails content/schema validation — worth retrying. + if any( + s in msg + for s in ["model produced invalid content", "invalid content"] + ): + return True + cause = getattr(error, "__cause__", None) if cause and cause is not error: return _looks_like_rate_limit(cause) diff --git a/src/processor/src/steps/migration_processor.py b/src/processor/src/steps/migration_processor.py index 436757f..c73f570 100644 --- a/src/processor/src/steps/migration_processor.py +++ b/src/processor/src/steps/migration_processor.py @@ -32,7 +32,7 @@ from datetime import datetime from typing import Any -from agent_framework import Workflow, WorkflowBuilder, WorkflowEvent +from agent_framework import Workflow, WorkflowBuilder from openai import AsyncAzureOpenAI