run downloads in background thread, also catch error when exchange apis are down instead of crashing