diff --git a/src/Tgstation.Server.Host/Components/Session/SessionController.cs b/src/Tgstation.Server.Host/Components/Session/SessionController.cs
index 6880ed7f6d..754b672b7d 100644
--- a/src/Tgstation.Server.Host/Components/Session/SessionController.cs
+++ b/src/Tgstation.Server.Host/Components/Session/SessionController.cs
@@ -122,7 +122,7 @@ namespace Tgstation.Server.Host.Components.Session
public FifoSemaphore TopicSendSemaphore { get; }
///
- public long MemoryUsage => process.MemoryUsage;
+ public long? MemoryUsage => process.MemoryUsage;
///
/// The for the .
diff --git a/src/Tgstation.Server.Host/System/IProcessBase.cs b/src/Tgstation.Server.Host/System/IProcessBase.cs
index f34d5e6597..6ae88dce50 100644
--- a/src/Tgstation.Server.Host/System/IProcessBase.cs
+++ b/src/Tgstation.Server.Host/System/IProcessBase.cs
@@ -16,7 +16,7 @@ namespace Tgstation.Server.Host.System
///
/// Gets the process' memory usage in bytes.
///
- long MemoryUsage { get; }
+ long? MemoryUsage { get; }
///
/// Set's the owned to a non-normal value.
diff --git a/src/Tgstation.Server.Host/System/Process.cs b/src/Tgstation.Server.Host/System/Process.cs
index 64c92bf89b..13a1a278f5 100644
--- a/src/Tgstation.Server.Host/System/Process.cs
+++ b/src/Tgstation.Server.Host/System/Process.cs
@@ -23,7 +23,21 @@ namespace Tgstation.Server.Host.System
public Task Lifetime { get; }
///
- public long MemoryUsage => handle.VirtualMemorySize64;
+ public long? MemoryUsage
+ {
+ get
+ {
+ try
+ {
+ return handle.VirtualMemorySize64;
+ }
+ catch (Exception ex)
+ {
+ logger.LogWarning(ex, "Failed to get PID {pid}'s memory usage!", Id);
+ return null;
+ }
+ }
+ }
///
/// The for the .