ipfs can be inaccessible due ipfs bridges blocking the request.
You can programmatically cycle through bridges, or connect directly to IPFS nodes. Importantly, it’s content addressable; as long as you have a hash, you can find it somewhere (assuming sufficient object coverage).