I possibly found a bug. According to the documentation written here https://docs.nestjs.com/fundamentals/injection-scopes a provider is injected as a singleton instance with the Scope.DEFAULT scope. With the Scope.TRANSIENT should create a new instance every time. However by default in my application a provider is being constructed on every DI, so it reaches the constructor on every requested instance and with the Scope.TRANSIENT it only reaches the constructor once.
Documentation | NestJS - A progressive Node.js framework
Nest is a framework for building efficient, scalable Node.js server-side applications. It uses progressive JavaScript, is built with TypeScript and combines elements of OOP (Object Oriented Progamming), FP (Functional Programming), and FRP (Functional Reactive Programming).