diff --git a/server/ai_process.go b/server/ai_process.go index 61151e7978..ecc01cc988 100644 --- a/server/ai_process.go +++ b/server/ai_process.go @@ -1493,6 +1493,10 @@ func processAIRequest(ctx context.Context, params aiRequestParams, req interface sess, err := params.sessManager.Select(ctx, cap, modelID) if err != nil { clog.Infof(ctx, "Error selecting session modelID=%v err=%v", modelID, err) + if cap == core.Capability_LiveVideoToVideo && sess != nil { + // for live video, remove the session from the pool to avoid retrying it + params.sessManager.Remove(ctx, sess) + } continue } if sess == nil { diff --git a/server/ai_session.go b/server/ai_session.go index 62512c144b..eeaf92587e 100644 --- a/server/ai_session.go +++ b/server/ai_session.go @@ -556,7 +556,7 @@ func (c *AISessionManager) Select(ctx context.Context, cap core.Capability, mode } if err := refreshSessionIfNeeded(ctx, sess.BroadcastSession, false); err != nil { - return nil, err + return sess, err } clog.V(common.DEBUG).Infof(ctx, "selected orchestrator=%s", sess.Transcoder())