diff --git a/pw_kvs/public/pw_kvs/flash_memory.h b/pw_kvs/public/pw_kvs/flash_memory.h
index 6abf14a..83341ed 100644
--- a/pw_kvs/public/pw_kvs/flash_memory.h
+++ b/pw_kvs/public/pw_kvs/flash_memory.h
@@ -34,12 +34,14 @@
  public:
   // The flash address is in the range of: 0 to FlashSize.
   typedef uint32_t Address;
-  constexpr FlashMemory(size_t sector_size,
-                        size_t sector_count,
-                        size_t alignment,
-                        uint32_t start_address = 0,
-                        uint32_t sector_start = 0,
-                        std::byte erased_memory_content = std::byte{0xFF})
+
+  // TODO(pwbug/246): This can be constexpr when tokenized asserts are fixed.
+  FlashMemory(size_t sector_size,
+              size_t sector_count,
+              size_t alignment,
+              uint32_t start_address = 0,
+              uint32_t sector_start = 0,
+              std::byte erased_memory_content = std::byte{0xFF})
       : sector_size_(sector_size),
         flash_sector_count_(sector_count),
         alignment_(alignment),
@@ -161,7 +163,8 @@
     FlashPartition::Address address_;
   };
 
-  constexpr FlashPartition(
+  // TODO(pwbug/246): This can be constexpr when tokenized asserts are fixed.
+  FlashPartition(
       FlashMemory* flash,
       uint32_t start_sector_index,
       uint32_t sector_count,
@@ -184,7 +187,8 @@
   }
 
   // Creates a FlashPartition that uses the entire flash with its alignment.
-  constexpr FlashPartition(FlashMemory* flash)
+  // TODO(pwbug/246): This can be constexpr when tokenized asserts are fixed.
+  FlashPartition(FlashMemory* flash)
       : FlashPartition(
             flash, 0, flash->sector_count(), flash->alignment_bytes()) {}
 
diff --git a/pw_result/public/pw_result/result.h b/pw_result/public/pw_result/result.h
index 2cf8d48..60bcc05 100644
--- a/pw_result/public/pw_result/result.h
+++ b/pw_result/public/pw_result/result.h
@@ -33,12 +33,10 @@
   constexpr Result(std::in_place_t, Args&&... args)
       : value_(std::forward<Args>(args)...), status_(Status::OK) {}
 
-  constexpr Result(Status status) : status_(status) {
-    PW_CHECK(status_ != Status::OK);
-  }
-  constexpr Result(Status::Code code) : status_(code) {
-    PW_CHECK(status_ != Status::OK);
-  }
+  // TODO(pwbug/246): This can be constexpr when tokenized asserts are fixed.
+  Result(Status status) : status_(status) { PW_CHECK(status_ != Status::OK); }
+  // TODO(pwbug/246): This can be constexpr when tokenized asserts are fixed.
+  Result(Status::Code code) : status_(code) { PW_CHECK(status_ != Status::OK); }
 
   constexpr Result(const Result&) = default;
   constexpr Result& operator=(const Result&) = default;
@@ -49,17 +47,20 @@
   constexpr Status status() const { return status_; }
   constexpr bool ok() const { return status_.ok(); }
 
-  constexpr T& value() & {
+  // TODO(pwbug/246): This can be constexpr when tokenized asserts are fixed.
+  T& value() & {
     PW_CHECK_OK(status_);
     return value_;
   }
 
-  constexpr const T& value() const& {
+  // TODO(pwbug/246): This can be constexpr when tokenized asserts are fixed.
+  const T& value() const& {
     PW_CHECK_OK(status_);
     return value_;
   }
 
-  constexpr T&& value() && {
+  // TODO(pwbug/246): This can be constexpr when tokenized asserts are fixed.
+  T&& value() && {
     PW_CHECK_OK(status_);
     return std::move(value_);
   }
