Foundry376/Mailspring · error

Sorry, we were unable to complete the translation request.

Error message

Sorry, we were unable to complete the translation request.

What it means

Generic guard inside GithubUserStore._githubRequest: thrown whenever the GitHub API fetch for a user profile or repo list returns a non-ok response (rate limits, 404 for nonexistent users, auth failures). The message is user-facing but the underlying cause is lost because the status/body are not captured.

Source

Thrown at app/internal_packages/github-contact-card/lib/github-user-store.ts:107

      }

      this._loading = false;
      this._profile = this._cache[email] = profile;
      this.trigger(this);
    } catch (err) {
      // fail silently
    }
  }

  // Wrap the Node `request` library and pass the User-Agent header, which is required
  // by Github's API. Also pass `json:true`, which causes responses to be automatically
  // parsed.
  async _githubRequest(url: string) {
    const headers = new Headers();
    headers.append('User-Agent', 'fetch-request');
    const resp = await fetch(url, { headers });
    if (!resp.ok) {
      throw new Error('Sorry, we were unable to complete the translation request.');
    }
    return resp.json();
  }
}

export default new GithubUserStore();

View on GitHub (pinned to 648c685d60)

Solutions

  1. Include resp.status and a truncated body in the error to distinguish rate limiting (403/429) from a missing user (404)
  2. Respect GitHub's X-RateLimit-Reset header and back off before retrying
  3. Since the caller catches and fails silently, log the failure so debugging is possible
Defensive patterns

Strategy: try-catch

When it happens

Trigger: Thrown at app/internal_packages/github-contact-card/lib/github-user-store.ts:107 when the library encounters an invalid state.

Common situations: See trigger scenarios.


AI-assisted analysis of Foundry376/Mailspring@648c685d60 (2026-09-03). Data as JSON: /api/errors/7493c54911305b68. Report an issue: GitHub.