Skip to content

POST /tracks returns 401 with empty body while GET /me returns 200 (Pro Unlimited account) #562

Description

@antechquity

Upload via POST /tracks returns 401 with an empty response body ('\n', Content-Type: text/plain, no WWW-Authenticate header). The same access token succeeds on GET /me (200).

Account: jacob-abdo-1 (user id 62867548)
Plan: Pro Unlimited — quota.unlimited_upload_quota: true, upload_seconds_left: null
Client ID: oaKtPwuLDy6dKEUDFwtqhiiPy7Mcwien
App: registered via scripts/sc-api-auth.mjs, redirect URI http://localhost:8080/callback

Auth: OAuth 2.1 authorization_code + PKCE, per the API guide. Token exchange succeeds and refresh works.

Tried, all returning an identical 401 with empty body:

  • Authorization: OAuth <token> and Authorization: Bearer <token>
  • Freshly refreshed access token
  • Refresh requesting scopes non-expiring, upload, * (all return 200, but scope comes back as "")
  • Minimal multipart body: track[title], track[sharing], track[asset_data]

Reads work, writes do not.

GET  /me      -> 200  (returns Pro Unlimited plan, unlimited_upload_quota: true)
POST /tracks  -> 401  body: '\n'   content-type: text/plain

This matches the signature in #110, where the resolution was SoundCloud reinstating API credentials server-side. Could you check whether upload permission is enabled for this client / account?

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions