--- a/com/mojang/serialization/Dynamic.java
+++ b/com/mojang/serialization/Dynamic.java
@@ -19,6 +_,7 @@
 
 @SuppressWarnings("unused")
 public class Dynamic<T> extends DynamicLike<T> {
+    private static final boolean DEBUG_MISSING_KEYS = Boolean.getBoolean("Paper.debugDynamicMissingKeys"); // Paper - Perf: Skip toString on values like NBT
     private final T value;
 
     public Dynamic(final DynamicOps<T> ops) {
@@ -120,7 +_,7 @@
         return new OptionalDynamic<>(ops, ops.getMap(value).flatMap(m -> {
             final T value = m.get(key);
             if (value == null) {
-                return DataResult.error(() -> "key missing: " + key + " in " + this.value);
+                return DataResult.error(() -> DEBUG_MISSING_KEYS ? "key missing: " + key + " in " + this.value : "key missing: " + key); // Paper - Perf: Skip toString on values like NBT
             }
             return DataResult.success(new Dynamic<>(ops, value));
         }));
