Incomplete / inconsistent data returned from track reposts endpoint during outage
Nobody has claimed this yet.
- Dominant language
- JavaScript
- Stars
- 254
- Forks
- 53
- PR merge metrics
- No merged PRs in 30d
Description
Title: Incomplete / Invalid data returned from track reposts endpoint during issues last night
Issue found of: July 3th, 2021
Issue resolved of July 4th, 2021
Endpoint(s):
GET https://api.soundcloud.com/tracks/1078586815/reposters?page_size=200&client_id=XXX
Scope(s):
- None (application is not using authentication i.e., implicit flow)
Steps to reproduce:
curl --request GET \
--url 'https://api.soundcloud.com/tracks/1078586815/reposters?page_size=200&client_id=XXX'
Expected behaviour:
A list of reposters as described in the documentation, and where the list matches what is reflected on the website for this track (as an example - this is the track from the above ID - https://soundcloud.com/keepdreaminkofi/sell-my-soul-3/reposts).
I'm aware of issues at SoundCloud last night - https://status.soundcloud.com/
However, last night during the outage we were getting a valid 200 OK response, but with empty collection of data. This is a pretty critical error from a data consistency point of view. If the data upstream cannot be fetched, this method should not be returning a valid response with an empty data collection. Rather, as an API consumer I expect the call to fail via 5XX errors.
We cannot assume an empty collection to be an error condition as this is a perfectly valid condition in normal operation.
Actual behaviour:
200 OK but with empty collection
This issue now appears to be resolved, but this caused us problems when issues were ongoing last night.
It would be great if this could be investigated for future! Many thanks!
Contributor guide
No contributing guide indexed for this repository
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start by running the documented curl request against the track reposts endpoint and compare its response with the expected reposter list during an upstream outage. Review the API behavior for unavailable upstream data; done means the endpoint no longer presents an outage as a successful empty collection, with the failure behavior documented or covered by an appropriate test.
Written by the indexing model from the issue text.
Assessment
- Domain
- api, backend
- Issue type
- Bug
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Stale
- Clarity
- Mostly clear
- Newbie friendliness
- 25/100