diff --git a/extensions/Servers/Proxmox/Livewire/Component.php b/extensions/Servers/Proxmox/Livewire/Component.php index 32997a9c1..0c7875dbc 100644 --- a/extensions/Servers/Proxmox/Livewire/Component.php +++ b/extensions/Servers/Proxmox/Livewire/Component.php @@ -34,7 +34,14 @@ class Component extends BaseComponent abort(403); } - $this->loadVmStatus(); + try { + $this->loadVmStatus(); + } catch (\Throwable $e) { + \Log::error('Failed to load VM status for server ' . $server->id, [ + 'error' => $e->getMessage(), + ]); + $this->status = null; + } } /** diff --git a/extensions/Servers/Proxmox/Livewire/Server.php b/extensions/Servers/Proxmox/Livewire/Server.php index e62ca7f63..08606ad9e 100644 --- a/extensions/Servers/Proxmox/Livewire/Server.php +++ b/extensions/Servers/Proxmox/Livewire/Server.php @@ -13,8 +13,14 @@ class Server extends Component { parent::mount($server); - // Check and enforce bandwidth throttling if exceeded - $this->checkAndEnforceBandwidthLimit(); + // Check and enforce bandwidth throttling if exceeded (wrapped in try-catch to prevent lazy load failures) + try { + $this->checkAndEnforceBandwidthLimit(); + } catch (\Throwable $e) { + \Log::warning('Failed to check bandwidth limit for server ' . $server->id, [ + 'error' => $e->getMessage(), + ]); + } } public function getMonthlyTrafficProperty() diff --git a/extensions/Servers/Proxmox/views/server.blade.php b/extensions/Servers/Proxmox/views/server.blade.php index 5e4f21486..d7152312e 100644 --- a/extensions/Servers/Proxmox/views/server.blade.php +++ b/extensions/Servers/Proxmox/views/server.blade.php @@ -1,4 +1,5 @@
+ @if($status)
@@ -145,4 +146,24 @@
+ @else + {{-- Status unavailable - show error state --}} + +
+
+
+
+ +
+ {{ $server->hostname ?? 'Server #' . $server->id }} +
+
+ + Unavailable +
+
+

Unable to retrieve server status. Click to view details or try again.

+
+
+ @endif