diff --git a/src/Quasar/ResourceManager.hs b/src/Quasar/ResourceManager.hs
index 784059b79d4ad200841101bc2ef563461086f859..393bf17908d3cce06845b4f5c58efdd8ea5cb189 100644
--- a/src/Quasar/ResourceManager.hs
+++ b/src/Quasar/ResourceManager.hs
@@ -1,6 +1,7 @@
 module Quasar.ResourceManager (
   -- * MonadResourceManager
   MonadResourceManager(..),
+  FailedToRegisterResource,
   registerDisposable,
   registerDisposeAction,
   registerSimpleDisposeAction,
@@ -51,6 +52,12 @@ import Quasar.Prelude
 import System.IO (fixIO, hPutStrLn, stderr)
 
 
+data FailedToRegisterResource = FailedToRegisterResource
+  deriving stock (Eq, Show)
+
+instance Exception FailedToRegisterResource where
+  displayException FailedToRegisterResource =
+    "Failed to register a resource to a resource manager. This might result in leaked resources if left unhandled."
 
 -- | Internal entry of `ResourceManager`. The `TMVar` will be set to `Nothing` when the disposable has completed disposing.
 newtype ResourceManagerEntry = ResourceManagerEntry (TMVar (Awaitable (), Disposable))