diff --git a/app/(auth)/player/direct-player.tsx b/app/(auth)/player/direct-player.tsx
index 0c30e4e0..f8835305 100644
--- a/app/(auth)/player/direct-player.tsx
+++ b/app/(auth)/player/direct-player.tsx
@@ -498,7 +498,18 @@ export default function page() {
return () => setIsMounted(false);
}, []);
+ // Show error UI first, before checking loading/missing‐data
+ if (itemStatus.isError || streamStatus.isError) {
+ return (
+
+ {t("player.error")}
+
+ );
+ }
+
+ // Then show loader while either side is still fetching or data isn’t present
if (itemStatus.isLoading || streamStatus.isLoading || !item || !stream) {
+ // …loader UI…
return (