Steps to reproduce: 1. cd /tmp; mkdir a; 2. sudo btrfs subvolume snapshot / /tmp/a causes `ERROR: incorrect snapshot name '/'` whereas `ERROR /tmp/a is an existing directory` would be way more helpful experienced with `btrfs-progs` 4.3.1
Actually the problem is in '/' in the source path (or '.'). If you create another subvolume (say b), do 'snapshot b a', then it works and creates 'a/b'. This behaviour is consistent with 'cp' copying directories, but there's a bug in btrfs-progs that mistakenly refuses to use '/' or '.' as source subvolume.