diff --git a/Sources/XXMessengerClient/Utils/Stored.swift b/Sources/XXMessengerClient/Utils/Stored.swift
index 3f5d5fdb186db87d79872f4ee44d3ad1cf799979..052d638705c6dce4a619fbe18d0d55cf2159733c 100644
--- a/Sources/XXMessengerClient/Utils/Stored.swift
+++ b/Sources/XXMessengerClient/Utils/Stored.swift
@@ -31,6 +31,23 @@ private final class Memory<Value> {
   var value: Value
 }
 
+extension Stored {
+  public struct MissingValueError: Error, Equatable {
+    public init(typeDescription: String) {
+      self.typeDescription = typeDescription
+    }
+
+    public var typeDescription: String
+  }
+
+  public func tryGet<T>() throws -> T where Value == Optional<T> {
+    guard let value = get() else {
+      throw MissingValueError(typeDescription: "\(Self.self)")
+    }
+    return value
+  }
+}
+
 extension Stored {
   public static func unimplemented(placeholder: Value) -> Stored<Value> {
     Stored<Value>(