It seems that sometimes querys times out maybe due to performance issues or high usage, and when you re-run them manually they will be done in just a few minutes, maybe build a function which automatically tries to re-run after x time (and the dashboard is visited again offcourse), and after the query times out lets say 3 times don't include it again in the process. Just an idea to keep dashboards up to date :)