diff --git a/immichFrame.Web/src/lib/components/elements/error-element.svelte b/immichFrame.Web/src/lib/components/elements/error-element.svelte
index 887aa37a..23c374cb 100644
--- a/immichFrame.Web/src/lib/components/elements/error-element.svelte
+++ b/immichFrame.Web/src/lib/components/elements/error-element.svelte
@@ -13,6 +13,11 @@
}
let { message = '', authError: authError = false }: Props = $props();
+ let retryMessage = $derived(
+ !authError
+ ? 'The page will automatically refresh every 30 seconds until a connection is re-established.'
+ : ''
+ );
{:else}
- Looks like your immich-server is offline or you misconfigured immichFrame, check the
- container logs
+ {message ||
+ 'Looks like your immich-server is offline or you misconfigured immichFrame. Check the container logs.'}
+
+
+
+ {retryMessage}
{/if}
diff --git a/immichFrame.Web/src/lib/components/home-page/home-page.svelte b/immichFrame.Web/src/lib/components/home-page/home-page.svelte
index da7379d1..fa183550 100644
--- a/immichFrame.Web/src/lib/components/home-page/home-page.svelte
+++ b/immichFrame.Web/src/lib/components/home-page/home-page.svelte
@@ -60,6 +60,7 @@
let unsubscribeRestart: () => void;
let unsubscribeStop: () => void;
+ let refreshInterval: number;
let cursorVisible = $state(true);
let timeoutId: number;
@@ -387,6 +388,12 @@
onMount(() => {
window.addEventListener('mousemove', showCursor);
window.addEventListener('click', showCursor);
+
+ // 30 second reload on error
+ refreshInterval = window.setInterval(() => {
+ if (error) window.location.reload();
+ }, 30000);
+
if ($configStore.primaryColor) {
document.documentElement.style.setProperty('--primary-color', $configStore.primaryColor);
}
@@ -418,6 +425,7 @@
return () => {
window.removeEventListener('mousemove', showCursor);
window.removeEventListener('click', showCursor);
+ window.clearInterval(refreshInterval);
};
});