diff --git a/src/lib/ui/components/ProvisioningActivity.svelte b/src/lib/ui/components/ProvisioningActivity.svelte
index 68e0049..acf3685 100644
--- a/src/lib/ui/components/ProvisioningActivity.svelte
+++ b/src/lib/ui/components/ProvisioningActivity.svelte
@@ -1,5 +1,6 @@
+{#snippet dateTime(value: Timestamp)}
+ {@const iso = timestampISO(value)}
+ {#if iso}{:else}Not recorded{/if}
+{/snippet}
+
{' '}{outcome.checksSummary}
{/if}{deployment.error}
Last failure event ·
Last failure event · {@render dateTime(detail.activity.failureExcerpt.created_at)}{detail.activity.failureExcerpt.message}
{/if} {#if detail.warningMessages.length}Player safety checks bypassed for this operation. Confirmed by {detail.safetyOverride.actorName} ·
Player safety checks bypassed for this operation. Confirmed by {detail.safetyOverride.actorName} · {@render dateTime(detail.safetyOverride.confirmedAt)}.
{detail.safetyOverrideUnavailableReason ?? 'Confirm to bypass player safety checks for this operation.'}
{view.actionError}
{view.notice}
{/if} {#if detail.progress?.blocker?.href}{detail.progress.blocker.label ?? 'View blocking work'} →{/if} - {#if detail.progress?.recovery}{detail.progress.recovery.message}
Recorded{detail.progress.recovery.message}
Recorded {@render dateTime(detail.progress.recovery.at)}{#if detail.progress.recovery.operationId && detail.progress.recovery.operationId !== deployment.id}View recovery operation →{/if}Offsets below show time from the operation start (minutes:seconds or hours:minutes:seconds).