The error occurs because of configurable: false restrictions: 1) When a property is non-configurable, most changes to its descriptor are prohibited, 2) You can only change writable from true to false as a one-way operation, 3) Attempting to change enumerable or any other attribute will fail, 4) The second defineProperty call works because it's only changing writable from true to false, 5) The third call fails because it's trying to change enumerable on a non-configurable property, 6) This restriction ensures that once a property is locked down as non-configurable, its behavior remains predictable, 7) This is part of how JavaScript implements true constants.