fix(idaa): add Clear Cache & Reload escape hatch to recovery meetings server error state
"Try Again" resets auto_retry_count but reuses the same localStorage state — if ae_loc or ae_idaa_loc holds a stale account_id or api_secret_key, every retry fails identically and the user is stuck in an infinite error loop. New button clears ae_loc + ae_idaa_loc from localStorage and db_events.event from IDB, then reloads via the sessionStorage-preserved UUID URL (same logic as the IDAA layout's Clear Cache & Reload). Forces a fresh FQDN handshake and re-derives correct auth state. Guidance text shown so users know to try it when Try Again keeps failing. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
@@ -484,16 +484,41 @@ if (browser) {
|
||||
Unable to load meetings — server error. Please try again.
|
||||
{/if}
|
||||
</p>
|
||||
<button
|
||||
type="button"
|
||||
class="btn btn-sm preset-tonal-primary m-auto"
|
||||
onclick={() => {
|
||||
auto_retry_count = 0;
|
||||
$idaa_sess.recovery_meetings.search_version++;
|
||||
}}>
|
||||
<span class="fas fa-redo m-1"></span>
|
||||
Try Again
|
||||
</button>
|
||||
<p class="text-xs opacity-60">
|
||||
If "Try Again" keeps failing, use "Clear Cache & Reload" to reset your local data.
|
||||
</p>
|
||||
<div class="flex flex-row flex-wrap items-center justify-center gap-2">
|
||||
<button
|
||||
type="button"
|
||||
class="btn btn-sm preset-tonal-primary"
|
||||
onclick={() => {
|
||||
auto_retry_count = 0;
|
||||
$idaa_sess.recovery_meetings.search_version++;
|
||||
}}>
|
||||
<span class="fas fa-redo m-1"></span>
|
||||
Try Again
|
||||
</button>
|
||||
<!-- Escape hatch for persistent server errors caused by stale auth state in
|
||||
localStorage (stale account_id, api_secret_key, or site config). "Try Again"
|
||||
reuses the same bad state and loops indefinitely — this clears it.
|
||||
Mirrors the "Clear Cache & Reload" button in the IDAA layout auth error state. -->
|
||||
<button
|
||||
type="button"
|
||||
class="btn btn-sm preset-tonal-surface preset-outlined-warning-100-900 hover:preset-filled-warning-200-800 transition-all"
|
||||
onclick={async () => {
|
||||
localStorage.removeItem('ae_loc');
|
||||
localStorage.removeItem('ae_idaa_loc');
|
||||
try { await db_events.event.clear(); } catch { /* ignore */ }
|
||||
try {
|
||||
const saved_url = sessionStorage.getItem('idaa_iframe_reload_url');
|
||||
if (saved_url) { location.href = saved_url; return; }
|
||||
} catch { /* ignore */ }
|
||||
location.reload();
|
||||
}}>
|
||||
<span class="fas fa-sync-alt m-1"></span>
|
||||
Clear Cache & Reload
|
||||
</button>
|
||||
</div>
|
||||
</div>
|
||||
{:else}
|
||||
{#if has_active_filters}
|
||||
|
||||
Reference in New Issue
Block a user