By default unauthenticated has read privileges to regular streams
(read set to $all) but not system streams. You can change this default
see "Default ACL" here http://docs.geteventstore.com/server/3.7.0/access-control-lists/. If
you have something other than $all you will get 401 from all user
space streams as well.
But on these category streams in default configuration the read permission is set to $all
My goal is to provide the correct information back to the user from the client. eg the stream does not exist but this is made more complicated here because in this particular case the problem is not authentication, the problem is that the stream / projection does not exist.
I feel like it would be good if the eventstore could actually say if the stream existed or not. I appreciate there may be some good reason why not and indeed even not that big a priority in the grand scheme of things but want to share with you that this behaviour was surprising to me as a user of eventstore.