If an Exception is thrown during Permission Checking, we get an RSOD
Summary: That is, if I am not the owner of the Space, and for some reason the attempt to filter out what I can read throws an Exception, I can't load the Space at all.
The recipe for this is:
- Set up a Model Loop. (Two or three Models that inherit circularly.)
- Invite a non-Owner into the Space.
- When they try to load it, BOOM!
The issue is almost certainly that hasPermission() has no Exception protection, and that's being checked before we can load the Client, so it fails.