Skip to content
Tracon

TraconRunBudgetExceededException

Namespace Tracon · Assembly Tracon.Abstractions.dll

Thrown when a run tree’s token or cost budget runs out mid-run, between two model turns.

public sealed class TraconRunBudgetExceededException : TraconException, ISerializable

objectExceptionTraconExceptionTraconRunBudgetExceededException

ISerializable

TraconException.ErrorType, Exception.GetBaseException(), Exception.ToString(), Exception.GetType(), Exception.TargetSite, Exception.Message, Exception.Data, Exception.InnerException, Exception.HelpLink, Exception.Source, Exception.HResult, Exception.StackTrace, object.GetType(), object.ToString(), object.Equals(object?), object.Equals(object?, object?), object.ReferenceEquals(object?, object?), object.GetHashCode()

Thrown by the wrapper installed inside the tool-call loop, one layer before the raw provider client; Microsoft Agent Framework’s function-invoking client does not catch it, so it propagates out of AIAgent.RunAsync/RunStreamingAsync and fails the run.

This is a different fault from AgentRunBudget refusing to reserve a new child run (AgentRunBudget.TryReserveRun): that refusal is returned to the model as an ordinary tool result and the calling agent can recover; this exception ends the run that hit it.

Creates a new error.

public TraconRunBudgetExceededException()

Creates a new error.

public TraconRunBudgetExceededException(string message)

message string

The error message.

TraconRunBudgetExceededException(string, Exception)

Section titled “ TraconRunBudgetExceededException(string, Exception)”

Creates a new error.

public TraconRunBudgetExceededException(string message, Exception innerException)

message string

The error message.

innerException Exception

The underlying error.

The stable value written to TraconException.ErrorType.

public const string RunBudgetExceededErrorType = "run_budget_exceeded"

string

Gets the stable error type name written to the run record.

public override string ErrorType { get; }

string

Defaults to the full name of the exception type, so today’s behaviour does not change. A derived type overrides this member when the record has to be machine readable — for example TraconContentFilteredException writes content_filtered. Reports and alert rules can rely on this stable name instead of an assembly name.

The value is written to RunError.Type and carries no secret.