.NET API
TraconTenantQuotaExceededException
Tracon.Abstractions.dllThrown when a tenant’s quota period is spent and a run tree that is already running is refused new work: a workflow function node or an agent step that has not started.
public sealed class TraconTenantQuotaExceededException : TraconException, ISerializable- Inheritance
- object ← Exception ← TraconException ← TraconTenantQuotaExceededException
- Implements
- ISerializable
- Inherited Members
- 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()
Remarks
Section titled “Remarks”The quota is read where the work begins, not only where the request comes in
(429). A workflow that runs for hours would otherwise pass a quota that was spent
in its first minutes. Only a start is refused: a node or a model call already in progress
is never cut off, so a tenant can pass its limit by as much as the work that was running
when the limit was reached.
This is a different fault from TraconRunBudgetExceededException, and the
remedy differs. A run tree’s budget is a setting of the installation (Tracon:AgentGraph);
a tenant’s quota resets when its period ends. Both end the run RunStatus.Failed
in the class RunErrorClass.QuotaExceeded, and neither is retried by a workflow
node’s retry policy.
The exception is not thrown to an agent that called a sub-agent: there the refusal comes back to the model as a tool result, as a spent run tree budget does.
Constructors
Section titled “Constructors”TraconTenantQuotaExceededException()
Section titled “ TraconTenantQuotaExceededException()”Creates a new error.
public TraconTenantQuotaExceededException()TraconTenantQuotaExceededException(string)
Section titled “ TraconTenantQuotaExceededException(string)”Creates a new error.
public TraconTenantQuotaExceededException(string message)Parameters
Section titled “Parameters”message string
The error message.
TraconTenantQuotaExceededException(string, Exception)
Section titled “ TraconTenantQuotaExceededException(string, Exception)”Creates a new error.
public TraconTenantQuotaExceededException(string message, Exception innerException)Parameters
Section titled “Parameters”message string
The error message.
innerException Exception
The underlying error.
Fields
Section titled “Fields”TenantQuotaExceededErrorType
Section titled “ TenantQuotaExceededErrorType”The stable value written to TraconException.ErrorType.
public const string TenantQuotaExceededErrorType = "tenant_quota_exceeded"Field Value
Section titled “Field Value”Properties
Section titled “Properties”ErrorType
Section titled “ ErrorType”Gets the stable error type name written to the run record.
public override string ErrorType { get; }Property Value
Section titled “Property Value”Remarks
Section titled “Remarks”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.
Gets the limit that was reached, or null when the quota could not be verified.
public decimal? Limit { get; init; }Property Value
Section titled “Property Value”Metric
Section titled “ Metric”Gets the metric whose limit was reached, or null when the quota could not be verified.
public QuotaMetric? Metric { get; init; }Property Value
Section titled “Property Value”Period
Section titled “ Period”Gets the period whose limit was reached, or null when the quota could not be verified.
public QuotaPeriod? Period { get; init; }