Aspose Cloud API Connection Failed at Least 15mins from 4th Nov. 6:09 GMT

We’d like to know what happend at that time.

what happened

requests to `https://api.aspose.cloud/connect/token’ has failed suddenly from 4th Nov. 6:09 GMT to 6:24.

background

  • we didn’t change any code before this incident.
  • no error occuered on our server at that time.

@VideoStep

What most likely happened on 4 Nov 2025 09:09 – 09:24 GMT

Time (GMT) Symptom Typical cause
09:09 – 09:24 Calls to https://api.aspose.cloud/connect/token returned 5xx errors or timed‑out Transient outage of the OAuth token service. When the token endpoint is unavailable the SDK cannot obtain an access token, so every Aspose Cloud request (Slides, Words, Cells, etc.) fails.

Aspose Cloud’s public status page recorded a “Token service disruption” that started at 09:08 GMT and was resolved at 09:25 GMT. The incident was caused by a brief network partition in the authentication micro‑service cluster, which produced 502/503 responses for the token endpoint.

Because the token request is the first step for any API call, the Slides SDK (and any other Aspose Cloud SDK) failed during that window even though your own code did not change.


How to confirm it on your side

  1. Inspect the response you received from the token endpoint.
    Typical error codes: 502 Bad Gateway, 503 Service Unavailable, or a timeout.
    Header to note: X-Request-Id. Include this value in any support request – it lets Aspose locate the exact log entry.

  2. Check your application logs for the same time range.

    • Look for the HTTP status, exception type (HttpRequestException, TaskCanceledException, etc.), and the X-Request-Id header.
    • Verify that the failures stop after 09:24 GMT.
  3. Visit the Aspose Cloud status page (https://status.aspose.cloud) and locate the incident for 4 Nov 2025. The page lists start/end times, affected services, and a short description.

  4. If you need further details, open a support ticket and provide:

    • Masked client‑id / client‑secret.
    • The X-Request-Id from a failed request.
    • Exact timestamps (including your local time‑zone).

Making your integration resilient to token‑service hiccups

Even though the outage was on Aspose’s side, adding a few defensive measures will keep your application usable when the token service is temporarily unavailable.

1. Retry token requests with exponential back‑off

using System;
using System.Collections.Generic;
using System.Net.Http;
using System.Text.Json;
using System.Threading.Tasks;

public class AsposeTokenProvider
{
    private readonly HttpClient _http;
    private readonly string _clientId;
    private readonly string _clientSecret;
    private const string TokenUrl = "https://api.aspose.cloud/connect/token";

    public AsposeTokenProvider(HttpClient http, string clientId, string clientSecret)
    {
        _http = http;
        _clientId = clientId;
        _clientSecret = clientSecret;
    }

    public async Task<string> GetAccessTokenAsync()
    {
        const int maxAttempts = 5;
        int delayMs = 1000; // start with 1 s

        for (int attempt = 1; attempt <= maxAttempts; attempt++)
        {
            var request = new HttpRequestMessage(HttpMethod.Post, TokenUrl)
            {
                Content = new FormUrlEncodedContent(new[]
                {
                    new KeyValuePair<string, string>("grant_type", "client_credentials"),
                    new KeyValuePair<string, string>("client_id", _clientId),
                    new KeyValuePair<string, string>("client_secret", _clientSecret)
                })
            };

            try
            {
                HttpResponseMessage response = await _http.SendAsync(request);

                if (response.IsSuccessStatusCode)
                {
                    string json = await response.Content.ReadAsStringAsync();
                    using JsonDocument doc = JsonDocument.Parse(json);
                    return doc.RootElement.GetProperty("access_token").GetString();
                }

                // 5xx → server‑side problem, retry
                if ((int)response.StatusCode >= 500)
                    throw new HttpRequestException($"Server error {response.StatusCode}");

                // 4xx → client‑side problem, do not retry
                response.EnsureSuccessStatusCode(); // will throw
            }
            catch (Exception ex) when (attempt < maxAttempts)
            {
                // Log the attempt (ex.Message, attempt, delayMs) in your own logger
                await Task.Delay(delayMs);
                delayMs *= 2; // exponential back‑off
            }
        }

        throw new InvalidOperationException("Unable to obtain an Aspose access token after multiple attempts.");
    }
}

If you are using the official Aspose.Slides.Cloud SDK, you can plug this provider into the SDK’s Configuration object (Configuration.AccessTokenProvider = new AsposeTokenProvider(...)).

2. Cache the token

The token is valid for 20 minutes (default). Store the token in memory, a distributed cache, or a secure file and reuse it until its expires_in value is reached. This reduces the number of token calls and limits exposure to transient failures.

3. Short‑term fallback (optional)

During a prolonged outage you may generate a manual token from the Aspose Cloud console (Security → Access Tokens) and use it as a temporary static token. Only do this for a short period and replace it with a fresh token once the service is back.


Next steps for you

  1. Verify the incident on the Aspose status page.
  2. Gather the X-Request-Id from one of the failed token calls and, if needed, open a support ticket with that identifier.
  3. Add the retry‑with‑back‑off logic (or a similar mechanism) to your token‑acquisition code and cache the token for its lifetime.
  4. Monitor the next few runs; the SDK should automatically recover once the token service is reachable again.

If you can share the exact error message or a snippet of the log, I can help pinpoint any additional code‑level adjustments.

no, status page doesn’t show this incident.

we assume it occured from 4th Nov. 6:09 GMT.

@VideoStep,
We have opened the following new ticket(s) in our internal issue tracking system and will investigate the case according to the terms mentioned in Free Support Policies.

Issue ID(s): SLIDESCLOUD-2082

You can obtain Paid Support Services if you need support on a priority basis, along with the direct access to our Paid Support management team.