In your original code (or in the simplified code you show here if applicable) what action or event made you originally think that the “child actor was stopped”? You keep referring to it being stopped while memory lingers and I don’t follow that reasoning. Were you somehow assuming that when child comes out of the scope in the parent receive partial function (after call to child ! Produce) that the child actor was stopped? Since actors are addressable by path name, naturally the actor system needs to keep a reference to the child even though the rest of the application happens not to be interested in sending message to it (you had them sent by the parent).