I have implemented a second version of the application with pool and the same app settings, but the pool version still seems to disconnect at the same time as the non pool version. When I say "disconnect" I am referencing the shiny app disconnect where the screen greys out and you need to reload.
Currently the application is showing a timestamp when the data was last updated. The app uses autoInvalidate to invalidate the data every five minutes and re-query the database to see if there's new data to show. So I can already see "how old" the data is. From what I can tell the data is still updating regularly when the app disconnects.
I am working changing the app to a one page app so I can at least try to reconnect to the app with the right inputs already selected as described here. That would simplify the issue slightly for the end user.
I will look at the tryCatch loop to see if I can try a db reconnect if there's an issue. If you have an example of how to set that up I haven't found a good example of doing that. For instance if the database is down for an hour, can I try reconnecting every 5 minutes and leave a message on my app page that says, "The database is currently unavailable, will retry a connection in five minutes." So that the app page stays up and "available" without disconnecting.
I will also checkout the logger package and see if I can potentially capture some more useful information.
I'll post again when I have more info, thank you @cole for some ideas!