Yes, there are two levels of 'collection-root' directories.
The whole tree /var/lib/radicale/collections must be owned by the
radicale user. This caused the 500 internal server error because there
was one .Radicale.lock file owned by root. strace with -f and -s 200 on
the radicale process gives the error message even if the logging is broken.