Skip to content

Imgur anonymous uploads return 403 with bundled client_id #75

Description

@addozhang

Summary

During the 1.6.2 E2E supplemental run, uploads via the Imgur (anonymous) store consistently failed with HTTP 403 from https://api.imgur.com/3/image, even though the request body and headers conform to the documented base64 form-encoded contract (Authorization: Client-ID <id>, Content-Type: application/x-www-form-urlencoded, image=<b64>&type=base64).

The same client_id used to work; Imgur appears to have rate-limited / banned widely-shared anonymous client_ids that ship inside open-source apps. This is a known industry-wide pattern — Imgur has been progressively tightening anonymous API access.

Repro

  1. Configure the plugin with the default bundled IMGUR anonymous client_id.
  2. Run "Image Upload Toolkit: Publish page" on any note containing a local image.
  3. Observe ApiError surfaced in the progress modal; network log shows 403 Forbidden from Imgur.

Body verified correct via Batch 8 fix (#71 — base64 form body for requestUrl).

Hypotheses

  • Imgur has revoked or rate-limited the bundled anonymous client_id.
  • Imgur now blocks anonymous uploads from non-browser User-Agents entirely.
  • IP-level throttling on shared CI / cloud egress.

Options

  1. Document only: mark anonymous mode as best-effort in README; recommend users register their own client_id and paste it in settings.
  2. Remove bundled client_id: force users to provide their own; eliminates the false-bad-UX of a non-working default.
  3. Switch to authenticated OAuth flow: significantly more complex, but the only Imgur-supported long-term path.
  4. Deprecate Imgur anonymous store: surface a settings warning and stop advertising it.

Recommendation

Start with (1) + (2): drop the bundled client_id, update README + settings UI copy to point users at https://api.imgur.com/oauth2/addclient to register their own. Revisit OAuth if there's demand.

Refs

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugSomething isn't workinguploader

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions