diff --git a/src/main/java/org/qortal/api/resource/ArbitraryResource.java b/src/main/java/org/qortal/api/resource/ArbitraryResource.java index 90a687c0..e0dc257f 100644 --- a/src/main/java/org/qortal/api/resource/ArbitraryResource.java +++ b/src/main/java/org/qortal/api/resource/ArbitraryResource.java @@ -464,12 +464,19 @@ public class ArbitraryResource { ArbitraryDataReader arbitraryDataReader = new ArbitraryDataReader(name, ArbitraryDataFile.ResourceIdType.NAME, service, identifier); try { + int attempts = 0; + // Loop until we have data while (!Controller.isStopping()) { + attempts++; try { arbitraryDataReader.loadSynchronously(rebuild); break; } catch (MissingDataException e) { + if (attempts > 5) { + // Give up after 5 attempts + throw ApiExceptionFactory.INSTANCE.createCustomException(request, ApiError.INVALID_CRITERIA, "Data unavailable. Please try again later."); + } continue; } }