Exceptions
This content is for 0.1. Switch to the latest version for up-to-date documentation.
Exception hierarchy for effaced.
Every error raised by the library derives from EffacedError so
callers can catch the whole family with one clause.
AnonymizationError
Section titled “AnonymizationError”class AnonymizationError(EffacedError): ...No type-valid surrogate is registered for a column’s type.
Raised loudly instead of guessing a replacement value — register a
factory on the SurrogateRegistry
for the missing type.
AuditIntegrityError
Section titled “AuditIntegrityError”class AuditIntegrityError(EffacedError): ...The append-only audit log was asked to do something non-append-only.
Also raised when reading a trail that contains entries this version of
effaced cannot interpret (e.g. an event_type recorded by a newer
release) — unreadable evidence fails loudly instead of being skipped.
ConfigurationError
Section titled “ConfigurationError”class ConfigurationError(EffacedError): ...A component is not wired for the requested operation.
Raised loudly instead of degrading: erasing a subject on a planner constructed without an executor, outbox, or audit sink must never look like a successful erasure.
ConsentError
Section titled “ConsentError”class ConsentError(EffacedError): ...A consent record is malformed or an operation conflicts with one.
EffacedError
Section titled “EffacedError”class EffacedError(Exception): ...Base class for all effaced errors.
ManifestError
Section titled “ManifestError”class ManifestError(EffacedError): ...The declared data map is invalid, incomplete, or unmigratable.
ResolverError
Section titled “ResolverError”class ResolverError(EffacedError): ...An external-system resolver failed in a non-retryable way.
Retryable failures (timeouts, rate limits) are handled by the saga runner and never surface as this exception.
RetentionViolationError
Section titled “RetentionViolationError”class RetentionViolationError(EffacedError): ...An operation would delete data that is under a legal retention duty.
This is always a bug in the caller or the manifest — effaced refuses to proceed rather than silently destroying retained records.
SubjectResolutionError
Section titled “SubjectResolutionError”class SubjectResolutionError(EffacedError): ...A table’s subject link path could not be resolved to the subject.