diff --git a/src/ObjectPool/src/LeakTrackingObjectPool.cs b/src/ObjectPool/src/LeakTrackingObjectPool.cs
index 5fd3f07b1c23..f3b478e781e7 100644
--- a/src/ObjectPool/src/LeakTrackingObjectPool.cs
+++ b/src/ObjectPool/src/LeakTrackingObjectPool.cs
@@ -16,6 +16,8 @@ namespace Microsoft.Extensions.ObjectPool;
///
///
/// The type of object which is being pooled.
+[Obsolete("LeakTrackingObjectPool was only intended for internal use in diagnostic builds of .NET. " +
+ "It never functioned in publicly shipped .NET versions and may be removed in a future release.")]
public class LeakTrackingObjectPool : ObjectPool where T : class
{
private readonly ConditionalWeakTable _trackers = new ConditionalWeakTable();
diff --git a/src/ObjectPool/src/LeakTrackingObjectPoolProvider.cs b/src/ObjectPool/src/LeakTrackingObjectPoolProvider.cs
index 561ca00e7dbf..9482dbbadc9f 100644
--- a/src/ObjectPool/src/LeakTrackingObjectPoolProvider.cs
+++ b/src/ObjectPool/src/LeakTrackingObjectPoolProvider.cs
@@ -9,6 +9,8 @@ namespace Microsoft.Extensions.ObjectPool;
/// An that produces instances of
/// .
///
+[Obsolete("LeakTrackingObjectPoolProvider was only intended for internal use in diagnostic builds of .NET. " +
+ "It never functioned in publicly shipped .NET versions and may be removed in a future release.")]
public class LeakTrackingObjectPoolProvider : ObjectPoolProvider
{
private readonly ObjectPoolProvider _inner;