I was using QNEthernet to connect the doorbell to my HomeAssistant server so I can get notifications forwarded to my phone. The printf was a bonus.
I guess I should check the SD.open() call's return status. I had assumed that if the SD.begin() worked, the root directory would be available.