diff --git a/Octokit/Http/ApiConnection.cs b/Octokit/Http/ApiConnection.cs
index 9b1656f5..18991d3a 100644
--- a/Octokit/Http/ApiConnection.cs
+++ b/Octokit/Http/ApiConnection.cs
@@ -434,21 +434,22 @@ namespace Octokit
/// Thrown when an API error occurs.
public async Task GetQueuedOperation(Uri uri, CancellationToken cancellationToken)
{
- Ensure.ArgumentNotNull(uri, "uri");
-
- var response = await Connection.GetResponse(uri, cancellationToken);
-
- if (response.HttpResponse.StatusCode == HttpStatusCode.Accepted)
+ while (true)
{
- return await GetQueuedOperation(uri, cancellationToken);
- }
+ Ensure.ArgumentNotNull(uri, "uri");
- if (response.HttpResponse.StatusCode == HttpStatusCode.OK)
- {
- return response.Body;
+ var response = await Connection.GetResponse(uri, cancellationToken);
+
+ switch (response.HttpResponse.StatusCode)
+ {
+ case HttpStatusCode.Accepted:
+ continue;
+ case HttpStatusCode.OK:
+ return response.Body;
+ }
+
+ throw new ApiException("Queued Operations expect status codes of Accepted or OK.", response.HttpResponse.StatusCode);
}
- throw new ApiException("Queued Operations expect status codes of Accepted or OK.",
- response.HttpResponse.StatusCode);
}
async Task> GetPage(