This is a huge annoyance with CoreData, you can’t pass objects between threads.
I remember tearing my hair out over that, i did eventually get it working reliably across the 2 threads i needed and i swore if i ever had to try again i’d try something else, it was just so easy to start with