If you have a configured a printer and cups is for some reason not accessible the printer is deleted from the registry. This means a customer has to reconfigure the printer every time cups is not available for some reason. We should not delete the configuration. The quick fix in master is to remove line 83 in smbd/server_reload.c. The question is how to do the cleanup. Maybe we should add a timestamp to printers and delete them after 2 weeks if they didn't show up.
I've looked at the code more closely. We did a lot of changes in that area. I think we got it correct. We call reload_printers() only after a successful pcap_cache_reload() and pcap_cache_reload() calls this function only on success. Which means that it was able to talk to the CUPS server.
There was just a bug in master's spoolssd. I've tested 3.5.10 and 3.6.0 and it is working correctly.