Why should I not make my services singletons (ioc)?

Did some more research.

Because it's easier to handle session specific information when using a shorter lifetime. Mixing lifetimes can also complicate things.

Every time you take a scoped dependency in a single instance service it will work fine at start. However, scoped services are typically not designed to be long lived. If they use a external resource like a socket connection or a database connection it will probably be lost at one point.

Since the scoped service is not design for that, it will probably start failing, and therefore the single instance service will also start failing and continue to do that until the application is restarted.