pub enum DbError {
Show 57 variants
Message(String),
WriteDependencyConflict {
writes: Vec<WriteId>,
},
ReplayRetirementCutNotPrefix,
ReadOnlyWriteTransaction,
Sqlite(Error),
ExpectedSchema(&'static Error),
Serde(Error),
Protocol(Box<StoreProtocolError>),
RemoteObject(Box<RemoteObjectRecordError>),
AudiencePackage(Box<AudiencePackageError>),
ObjectHash(InvalidObjectHash),
BlobLocator(BlobLocatorError),
CircleId(CircleIdError),
RowRoutingKey(RowRoutingKeyError),
CirclePartitionControl(CirclePartitionControlError),
Gate(GateError),
Storage(StorageError),
BlobPath(PathTokenError),
Io(Error),
File(FileError),
LocalBlobRemoval(LocalBlobRemovalError),
CachedLocatorRemoval(CachedLocatorRemovalError),
IntRange(TryFromIntError),
ParseInt(ParseIntError),
Utf8(FromUtf8Error),
Utf8Slice(Utf8Error),
BlobDecl(BlobDeclError),
ChangesetIdentity(ChangesetIdentityError),
Changeset(ChangesetError),
AuthorStreamId(AuthorStreamIdParseError),
RowBlobRef(RowBlobRefError),
WriteRetraction(Box<WriteRetractionError>),
RotationGate(RotationGateError),
Encryption(EncryptionError),
SnapshotImage(Box<SnapshotImageError>),
PayloadStore(Box<PayloadStoreError>),
PayloadCleanupFailed {
operation: Box<DbError>,
cleanup: Box<DbError>,
},
ChangeCaptureFailed {
operation: Box<DbError>,
capture: Box<DbError>,
},
FromSql(FromSqlError),
BlobOpeningAuthority(BlobOpeningAuthorityError),
OwnerPromotionJournal(Box<OwnerPromotionJournalError>),
CircleJournal(Box<CircleJournalError>),
SyncRoutingContract(SyncRoutingContractError),
RowIdentity(RowIdentityError),
PreparedCommit(Box<PreparedCommitError>),
CircleState(Box<CircleStateError>),
DeviceExclusionJournal(Box<StoreDeviceExclusionJournalError>),
StoreReclaimJournal(Box<StoreReclaimJournalError>),
CommitNewFile(CommitNewFileError),
AudienceBlobStaging(Box<dyn Error + Send + Sync + 'static>),
AudienceBlobRollbackFailed {
operation: Box<DbError>,
rollback: StagedBlobRollbackFailures,
},
StagedBlobRollback(StagedBlobRollbackFailures),
BlobMoveRequiresMaterialization {
table: String,
row_id: String,
column: String,
row_stamp: String,
reason: Box<DbError>,
},
UnparseableOutboxAttemptTime {
entry_id: i64,
value: String,
source: ParseError,
},
Context {
context: String,
source: Box<DbError>,
},
StoreRootHashMissing,
ExcludedDeviceMustReset {
circle_id: CircleId,
close_id: CircleEpochCloseId,
},
}Expand description
An error from the owned database.
Variants§
Message(String)
WriteDependencyConflict
ReplayRetirementCutNotPrefix
ReadOnlyWriteTransaction
Sqlite(Error)
ExpectedSchema(&'static Error)
Serde(Error)
A JSON column’s bytes did not read back as the value they encode, or a value would not encode. Every synced-protocol column is stored as JSON, so this is the shape of every column-level decode failure.
Protocol(Box<StoreProtocolError>)
Durable bytes failed the Store protocol’s own validation — a hash that does not match, a signature that does not verify, an object in the wrong slot. The database read them back intact; the protocol refused them.
RemoteObject(Box<RemoteObjectRecordError>)
AudiencePackage(Box<AudiencePackageError>)
ObjectHash(InvalidObjectHash)
BlobLocator(BlobLocatorError)
CircleId(CircleIdError)
RowRoutingKey(RowRoutingKeyError)
CirclePartitionControl(CirclePartitionControlError)
Gate(GateError)
Storage(StorageError)
BlobPath(PathTokenError)
Io(Error)
File(FileError)
LocalBlobRemoval(LocalBlobRemovalError)
CachedLocatorRemoval(CachedLocatorRemovalError)
IntRange(TryFromIntError)
A stored integer column did not fit the type the schema says it holds.
ParseInt(ParseIntError)
Utf8(FromUtf8Error)
Utf8Slice(Utf8Error)
BlobDecl(BlobDeclError)
ChangesetIdentity(ChangesetIdentityError)
Changeset(ChangesetError)
AuthorStreamId(AuthorStreamIdParseError)
RowBlobRef(RowBlobRefError)
WriteRetraction(Box<WriteRetractionError>)
RotationGate(RotationGateError)
Encryption(EncryptionError)
SnapshotImage(Box<SnapshotImageError>)
PayloadStore(Box<PayloadStoreError>)
PayloadCleanupFailed
ChangeCaptureFailed
FromSql(FromSqlError)
BlobOpeningAuthority(BlobOpeningAuthorityError)
OwnerPromotionJournal(Box<OwnerPromotionJournalError>)
CircleJournal(Box<CircleJournalError>)
SyncRoutingContract(SyncRoutingContractError)
RowIdentity(RowIdentityError)
PreparedCommit(Box<PreparedCommitError>)
CircleState(Box<CircleStateError>)
DeviceExclusionJournal(Box<StoreDeviceExclusionJournalError>)
StoreReclaimJournal(Box<StoreReclaimJournalError>)
CommitNewFile(CommitNewFileError)
AudienceBlobStaging(Box<dyn Error + Send + Sync + 'static>)
Staging a write’s audience-move blobs failed. The implementation of
AudienceBlobMoveStaging is injected from above, so its failure is
carried as an opaque source rather than named here.
AudienceBlobRollbackFailed
Staging a write’s audience-move blobs failed AND rolling the staged files back failed, so those files are left on disk. Carries both failures rather than reporting one and describing the other.
StagedBlobRollback(StagedBlobRollbackFailures)
BlobMoveRequiresMaterialization
An audience move needs its blob materialized locally and it is not — the row’s bytes are absent, stale, or refuse their declared identity. Names the row so the caller can act on it.
UnparseableOutboxAttemptTime
A queued outbox entry’s last_attempt_at is not an RFC 3339 timestamp,
so whether the entry is still inside its retry backoff cannot be
decided. Names the entry so the caller can act on that row.
Context
A DbError with the operation that produced it named in front of it.
Carries the cause as a DbError so callers keep matching on it after
it crosses the layer that added the description.
StoreRootHashMissing
ExcludedDeviceMustReset
The local device was excluded from a Circle epoch close and has not yet reset its projection from the successor bootstrap, so it cannot publish into the Circle. Stays matchable at the publication boundary rather than flattening into a message.