Skip to main content
This page is the single source of truth for every error, reason code, and decision action in TealTiger. Use it to understand what fired, why, and how to resolve it.
v1.3 adds 28+ new reason codes across 4 new domains (Identity, Workflow, Temporal, Drift) plus FREEZE rules, anti-tamper, and code change governance. All v1.2 codes are preserved with identical semantics.

Configuration Errors

Configuration errors are thrown as exceptions (not returned as decisions). They indicate misconfiguration that must be fixed before the engine can evaluate requests.

TealError

Base error class for all TealTiger v1.2 errors.

TealConfigError

Thrown when policy or module configuration is invalid. Extends TealError. Additional properties:

TealSchemaError

Thrown when a policy or registry document fails structural validation. Extends TealConfigError. Additional properties:

TealRuntimeError

Thrown for recoverable or non-recoverable runtime failures. Extends TealError. Additional properties:

TealAdapterError

Thrown when a storage adapter (e.g., memory adapter) encounters a failure. Extends TealRuntimeError.

v1.3 Error Classes

FreezeViolationError

Thrown when code attempts to modify, disable, or remove a FREEZE rule.

BundleIntegrityError

Thrown when a policy bundle fails integrity verification.

ApprovalExpiredError

Thrown when attempting to approve/reject an expired PENDING decision.

TamperAttemptError

Thrown when forbidden configuration keys are detected. Additional properties:

Reason Codes (32)

Reason codes are returned inside the Decision.reason_codes array. They explain why a decision was made. Each code belongs to a category, has a severity level, and maps to a default action.

Severity Levels


Policy (2 codes)

POLICY_COMPLIANT

POLICY_VIOLATION


Content (4 codes)

PII_DETECTED

PROMPT_INJECTION_DETECTED

HARMFUL_CONTENT_DETECTED

UNSAFE_CODE_DETECTED


Tool (3 codes)

TOOL_NOT_ALLOWED

TOOL_PARAMETER_INVALID

TOOL_RATE_LIMIT_EXCEEDED


Reliability (5 codes)

CIRCUIT_OPEN

CIRCUIT_HALF_OPEN

RETRY_BUDGET_EXCEEDED

FALLBACK_TRIGGERED

DEGRADE_TRIGGERED


Cost (5 codes)

COST_BUDGET_EXCEEDED

COST_VELOCITY_ANOMALY

COST_MODEL_TIER_VIOLATION

COST_ESTIMATED_TOO_HIGH

MODEL_DOWNGRADED


Mode (2 codes)

MONITOR_MODE_VIOLATION

REPORT_ONLY_MODE


Secrets (5 codes)

SECRET_DETECTED

CREDENTIAL_LEAKAGE

CREDENTIAL_TTL_EXCEEDED

CREDENTIAL_ROTATION_REQUIRED

SECRET_SCAN_SKIPPED_PERF_BUDGET


Memory (6 codes)

MEMORY_WRITE_DENIED_SECRET

MEMORY_WRITE_DENIED_PII

MEMORY_WRITE_REDACTED

MEMORY_WRITE_SUMMARY_ONLY

MEMORY_SCOPE_VIOLATION

MEMORY_READ_DENIED_CLASSIFICATION


Decision Actions (12)

Decision actions are the enforcement verbs returned in Decision.action. The engine selects the most restrictive action across all modules using a severity-based merge.

Action Severity Table

When multiple modules return different actions, most restrictive wins. A DENY from any module overrides an ALLOW from all others.

What Your Code Should Do

ALLOW / ALLOW_WRITE

Proceed normally. The request passed all governance checks.

DENY / DENY_WRITE / DENY_READ

Stop the operation. Return an error to the caller. Log the decision for audit.

REQUIRE_APPROVAL

Pause execution and route to a human reviewer. Do not proceed until approved.

REDACT / REDACT_AND_WRITE

Replace sensitive content with redaction markers, then proceed.

DEGRADE

Use a lower-cost or lower-quality alternative. The request is allowed but with reduced capability.

STORE_SUMMARY_ONLY

Store a summary representation instead of the full content.

TRANSFORM

Apply a transformation to the content before proceeding.

Quick Lookup Table

All 32 reason codes at a glance:

v1.3 Reason Codes (28+ new)

FREEZE & Safety (3 codes)

Identity / NHI (6 codes)

Access / ZSP (2 codes)

Code Change (3 codes)

Temporal (3 codes)

Drift (2 codes)

Cost v2 (3 codes)

Anti-Tamper (3 codes)

Guard v2 (5 codes)

Evidence (2 codes)