Troubleshooting Asset Audit and Timeline
Summary
This page covers missing or unexpected audit and timeline rows. Audit and timeline rows are written in the same transaction as the change they describe and are tenant-scoped. When a change appears to have happened but no audit or timeline row exists, the usual explanation is that the change did not commit, because the transaction rolled back. Retention behavior for these rows is unconfirmed.
Audience
Support engineers, developers, and QA engineers investigating a change that seems to have occurred without a corresponding audit or timeline entry, or timeline entries that are not visible for a tenant.
Symptoms
- A change appears to have happened but no audit or timeline row exists.
- Timeline rows are not visible for a tenant.
- Audit history looks incomplete for an asset.
- A user questions whether a change actually persisted.
Cause
Scope
This page covers the co-transactional writing of audit and timeline rows and their tenant scoping. It does not cover retention policy, which is unconfirmed.
Likely causes
- The change did not commit because the transaction rolled back, so no audit or timeline row was written.
- The audit and timeline rows exist but are being read under the wrong tenant context, so tenant scoping hides them.
- The apparent change was never persisted, matching the absence of rows.
- Retention behavior is unconfirmed, so an assumption about how long rows persist may be incorrect.
Resolution
Safe diagnostics
- Confirm the change actually persisted by reading the asset state; if the state did not change, the transaction likely rolled back and no rows are expected.
- Confirm the correct tenant context when reading timeline rows, since they are tenant-scoped.
- Correlate the presence of audit and timeline rows with whether the change committed; co-transactional writing means they appear together or not at all.
- Do not assume a retention window; retention is unconfirmed and should be treated as such.
Validation
- Confirm that a committed change has both the expected asset state and a corresponding audit and timeline row.
- Confirm that an absent row corresponds to an uncommitted or rolled-back change.
- Confirm rows become visible under the correct tenant context.
Evidence to Collect
- Whether the asset state actually changed.
- The tenant context used to read the timeline.
- A correlation identifier and timestamp.
- The specific asset and operation in question.
Escalation
Route co-transactional audit behavior to the asset or backend team. Route retention policy questions to the database owner, noting retention is Requires confirmation. Route tenant-scoping questions to the tenant-context procedures.
Source References
microservices/src/asset-service/Infrastructure/AssetDbContext.csmicroservices/src/asset-service/Infrastructure/Persistence.csmicroservices/src/asset-service/Application/Commands/AssetCommands.cs
Related Articles
See Also
Keywords
audit, timeline, transaction, rollback, tenant-scoped
Revision Information
- Status: Draft
- Last reviewed: 2026-07-17
- Review cycle: Quarterly