Guest users do not have access to the public channel ("!") after initially being crated, until a subsequent access grant is issued, which updates the guest's access to also include the public channel.
Observed in 2.8.3+ but bug likely exists on older versions too.
Workaround: Specify ! in the "admin_channels" of the guest config, or issue any access grant for the guest user (e.g: access("", "foo")) to trigger channel recalculation.